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

时间:2010-06-18 18:56:44

标签: selenium

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

示例可能是联系人创建表单...

  1. 输入姓名/电子邮件,然后点击提交
  2. 响应以新的ContactID
  3. 到达
  4. 抓住返回的ContactID并将其放入“get”文本框并点击“submit”
  5. 通过联系方式收到回复
  6. 验证名称/电子邮件是否与第一套匹配
  7. 我怎样才能在Selenium中这样做?

2 个答案:

答案 0 :(得分:5)

现在完全不同了:

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

假设您使用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}

希望这会有所帮助:)

答案 1 :(得分:3)

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

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

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

替代方案:您描述的所有步骤都可以放入单个测试中。没有理由不在一次测试中有几个断言。