代码之家  ›  专栏  ›  技术社区  ›  Nicholas Franceschina rob2universe

使用硒:如何使用一个测试的输出作为另一个测试的输入

  •  3
  • Nicholas Franceschina rob2universe  · 技术社区  · 14 年前

    我是 Selenium N0B…很明显,运行一个测试并验证一个特定的响应是多么容易,但是如何从一个响应中获取一个值并在下一个测试中使用它呢?

    例如,联系人创建表单…

    1. 输入姓名/电子邮件并单击提交
    2. 收到带有新联系人ID的响应
    3. 获取返回的联系人ID并将其放入“获取”文本框,然后单击“提交”
    4. 收到回复时提供联系方式
    5. 验证名称/电子邮件是否与第一组匹配

    我该怎么用硒来做呢?

    2 回复  |  直到 14 年前
        1
  •  5
  •   Moritz Both    14 年前

    现在完全不同了:

    现在我明白了,当你说“测试”时,你的意思是在一个测试用例中有一个断言。因此,您希望使用从请求返回的值作为同一测试用例中另一个请求的输入。

    假设您使用Selenium IDE:要执行此操作,请使用Selenium IDE中的“store…”命令之一,并将值存储到变量中。使用与storetext命令匹配的选择器可以找到contactid。例如:

    command: storeText
    target: selector for element containing contactId
    value: contactId
    

    然后,使用变量替换和type命令将该文本插入其他地方。

    command: type
    target: selector for target input box
    value: ${contactId}
    

    希望这有帮助:)

        2
  •  3
  •   Moritz Both    14 年前

    (如果你把“测试”解释为“测试用例”,这个答案仍然是正确的。另一个完全不同的答案见下文。)

    你不会这么做的。每个测试应该独立于所有其他测试。对于第二个测试,只需重复第一个测试中的步骤。这样,您就可以以可靠的方式重现测试的成功和失败。

    如果您有许多测试都是从某个需要许多步骤才能到达的应用程序状态开始的,那么只需编写一个私有助手方法来达到该状态。

    备选方案:您描述的所有步骤都可以放入单个测试中。在一个测试中没有理由不具有多个断言。