如何在Selenium IDE中为每个测试套件的每个测试用例设置一个全局基本URL,以便我可以轻松切换到不同的环境?如何在Selenium IDE中为每个测试套件的每个测试用例设置全局基本URL?
回答
我刚创建了一个单独的测试,并将其放在所有测试的顶部。将基础url存储到一个变量,现在我可以通过$ {variable_name}在其他测试用例中访问它。
测试用例HTML文件负责设置基本URL。从Selenium IDE中,您可以覆盖测试用例的基本URL。另一方面,测试套件只是您的测试用例的一个包。
从您的测试套件中引用的每个测试用例文件中移除基本URL设置。然后手动为测试套件设置基本URL并运行套件。
所讨论的行是每个测试用例文件的头:
<link href="http://server-name/" rel="selenium.base"/>
如果缺少,则基本URL自动重写它。
太棒了,适合我。 – 2013-01-29 03:45:43
如果您在单个套件中有很多测试用例,则更改每个套件的基本URL是一种痛苦。相反,请为每个需要切换的基本网址创建一个单独的案例。例如,我将store https://testing.site.com/
作为myEnvironment
另存为测试用例SetEnvTesting。我为我的生产站点SetEnvProduction创建了另一个案例。
然后,将${myEnvironment}
插入测试用例中每个相对URL的开头。例如,open ${myEnvironment}/login.aspx
。 (如果您已经进行了大量测试,这可能会很痛苦,我建议您从现在开始添加它。)然后,只需将set-environment测试用例放在测试套件的开头即可。要将整个套件切换到另一个基本URL,只需在开始时放置一个不同的设置环境案例。另一个好处是,您可以通过在中间放置不同的集环境案例来切换套件中间的环境。
编辑:使用SetEnvironment测试用例的示例。
的SetEnvironment情况:
一个下面的测试情况的一个例子。
通知
如何CurrentEnvironment变量被使用。您可以为套件中的每个案例做到这一点。另外,您可以让每个独立的测试套件都使用相同的SetEnvironment案例,因此它们都可以一起切换。
该基地网址变得不相关。本质上,你压倒了它。
我希望这很有帮助!
你可以发布myEnvironment脚本吗? – Kayser 2013-01-24 13:51:24
@Kayser我编辑的帖子添加一个例子。希望能帮助到你。 – arwenvh 2013-01-30 22:12:16
@arwenvh回复:“改变每个基本URL是一种痛苦” 我使用这个linux/bash命令来替换我的测试用例中的所有有问题的行(都带有.tc扩展名)'find/path/to/your/testcases -type f -name“* .tc”-exec sed -i“s /.* selenium.base。*/<! - selenium.base被整洁脚本删除 - > /”'{}'\; ' – 2015-02-04 04:40:32
我发现它非常令人沮丧我不能只是有一个空白的基本URL,并让它使用我已经打开的任何页面作为测试的开始。什么是能够记录相对网址,当它迫使你到硬编码一个基地网址每个相对网址的前缀(从而把它们变成absoulte网址)?
扩展在其他的答案,并从这个问题:In Selenium IDE, how to get the value of the base url
可以存储在一个变量的当前域,然后用这个来代替硬编码的一个。这可以让你登录到你想运行测试的服务器上,点击播放,它会运行测试,而不用把所有baseURL废话都重定向到错误的服务器上。
就在第一个脚本开始在你的浴室使用以下命令:
,同时继续使用http://${host}/
语法,你在你的脚本需要每真正相对 URL。
我更喜欢使用** window.location.origin **,因为它将包含协议和可选端口,所以我不需要对它们做出假设。 – 2016-11-24 09:05:32
我试过接受的答案,它对硒IDE有效,但在运行stand-alone server时无效。
最后,我把值放在user-extensions.js里面,然后用storeEval取回值。然后,可以在不同情况下检索相同的值。
编辑:
在用户extensions.js,添加以下
var selenium_base_url = "http://example.com"
在HTLM套件,添加以下
<tr>
<td>storeEval</td>
<td>selenium_base_url</td>
<td>case_base_url</td>
</tr>
<tr>
<td>open</td>
<td>${case_base_url}/case_path?a=1&b=2</td>
<td></td>
</tr>
这可以看第一奇数视线,但实际上user-extension.js
可以在执行stand-alone server
之前即时修改,因此您可以在真实中使用不同的基本URL QA场景。
Hello @Walty Yeung,你有没有关于你的.js扩展的例子? TKS – 2015-08-18 18:14:14
嗯,我觉得这是一个简单的解决方案:
在第一次测试(测试套件)调整
<link rel="selenium.base" href="http://google.com" />
所示卸下(使用文本编辑器需要在下面的测试中或类似):
<link rel="selenium.base" ... />
如果你没事双击多次,
- 双击顶部,将其设置为您想要的网址。
- 现在双击顶部,中间,底部。
- 现在双击底部,中间,顶部。
我创建了一个用户扩展命令'doBaseURL'来操纵Selenium IDE字段'基本URL'。 在测试套件的每个测试案例中,我添加了这个命令| baseURL | | |
。在曲面下面,它设置一个名为baseURL的存储变量。 在第一个'baseURL'命令之前,可以通过测试用例命令为存储变量'baseURL'提供一个值。 该方法覆盖每个测试用例文件的<link href="http://server-name/" rel="selenium.base"/>
设置。 对我来说,这个工作正常,因为现在Selenium IDE反映了测试用例将使用(或者在发生错误时正在使用)的基本URL。
的Java脚本是:http://www.seleniumhq.org/docs/08_user_extensions.jsp
- 1. 为测试类中的每个测试定制的设置
- 2. 试图运行Selenium IDE Python脚本作为测试套件
- 3. Ruby测试:单元,如何知道测试套件中每个测试用例的失败/传递状态?
- 4. Selenium IDE:在测试中执行测试
- 5. 全局测试钩子或全局测试拆解机器人框架中的每个测试
- 6. 如何为Selenium IDE创建嵌套测试套件?
- 7. Selenium IDE:如何在给定测试套件中的每个测试用例之前/之后创建脚本来执行?
- 8. (C#与NUnit的2.6.4)[设置]运行每个测试用例
- 9. 从测试套件到测试selenium-ide pass变量
- 10. Selenium测试无需登录每个测试
- 11. 如何测量每个django测试的时间配置文件?
- 12. Selenium设置测试
- 13. NUnit的 - 全球方法每个测试
- 14. 如何设置teamcity为每个构建运行android测试
- 15. Rspec的 - 如何在每个测试
- 16. 测试调用:如何设置所有测试套件共用
- 17. 提升单元测试框架:如何显示每个测试套件消息
- 18. 在套件中的每个测试之前运行设置代码
- 19. 如何使用Selenium IDE测试工具?
- 20. 每个需求,每个类或每个方法是否有测试用例?
- 21. 将JUnit测试用例转换为Selenium IDE html文件?
- 22. 在Aspectj中为测试套件中的每个Junit测试创建一个切入点
- 23. 如何建立一个干净的测试机为每个测试
- 24. 每次测试的测试设置和拆卸步骤
- 25. 如何创建一个用Ruby编写的Selenium测试套件?
- 26. JUnit测试套件 - 仅包含特定测试,而不是每个类中的测试?
- 27. 如何实现Java测试套件Selenium测试
- 28. Selenium导出测试用例为PHP-phpunit在我的Selenium IDE 1.2.0中缺失?
- 29. 如何分析每个硒测试?
- 30. 更改的测试用例硒IDE
这不是工作:
安装用户扩展脚本的 “使用用户扩展使用Selenium-IDE” 部分SeleniumHQ文档中解释我。我试图把$ {variable_name}放在基本URL和打开命令中,并且在两种情况下它都不会被我以前设置的值替换。你能详细谈谈你是如何做到这一点的吗?谢谢! – 2011-07-18 20:52:56
Feh。我有反驳“存储”的论据。 – 2011-07-18 20:58:10
有人可以提供有关此策略的更多详细信息吗?我无法让它工作。 Selenium似乎没有评估链接元素中的'$ {variables}',并且在以后的测试中将一个值“存储”回到'selenium.base'中似乎不起作用。 – 2012-01-18 23:59:21