Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 直接使用Selenium RC或将Selenium与Robot框架结合使用_Java_Selenium_Selenium Rc_Robotframework - Fatal编程技术网

Java 直接使用Selenium RC或将Selenium与Robot框架结合使用

Java 直接使用Selenium RC或将Selenium与Robot框架结合使用,java,selenium,selenium-rc,robotframework,Java,Selenium,Selenium Rc,Robotframework,我必须承认,我爱上了Selenium,因为它的录制和播放功能以及IDE中录制的操作的测试用例生成功能。但是我仍然犹豫是否进入实现阶段,因为录制过程中内置到测试用例中的附带细节(例如,使用DOM、xpath等定位事件),这可能使测试用例在导入到RC后出现html更改时容易失败。我完全理解,作为回归测试的一部分,不时调整预期结果是测试人员工作的一部分,但我也不希望在这方面花费的时间超过手动测试所需的时间 据我所知,Selenium with Robot framework具有测试用例的关键字形式。我

我必须承认,我爱上了Selenium,因为它的录制和播放功能以及IDE中录制的操作的测试用例生成功能。但是我仍然犹豫是否进入实现阶段,因为录制过程中内置到测试用例中的附带细节(例如,使用DOM、xpath等定位事件),这可能使测试用例在导入到RC后出现html更改时容易失败。我完全理解,作为回归测试的一部分,不时调整预期结果是测试人员工作的一部分,但我也不希望在这方面花费的时间超过手动测试所需的时间

据我所知,Selenium with Robot framework具有测试用例的关键字形式。我的猜测是,它允许我们将附带的细节提取到各种关键字中,这可以使测试用例更容易调整,并且更易于维护。(如果我错了,请纠正我)

如果您能听到关于如何设置有效的UI自动化环境的建议,我们将不胜感激。我应该只使用Selenium RC还是将Selenium与Robot框架结合使用?为什么


提前感谢

我们公司使用Fitnesse而不是Robot来控制硒,但是,我们也有同样的问题。我们从对DOM的假设转变为仅通过ID访问元素。由于这在Fitnesse中很麻烦,我们目前正在努力将Selenium后端添加到我们自己的框架中(以前只有Java和Smalltalk的后端)

因此,通过要求DOM中存在具有特定ID的元素,如果有人从页面中删除元素,我们当然会破坏测试;然而,我们发现这种行为非常有用,因为它强制执行了与实现进行的测试的契约,并且当有人破坏了实现时,我们发现缺少的元素是一件好事


此外,保持UI自动化深入是一个很好的实践:只使用Selenium测试页面上的内容,并通过直接调用底层函数来测试业务逻辑

您完全正确,录制和回放自动化的最大问题是生成的脚本中偶然且经常更改的细节。显然,您可以在录制后从脚本中删除细节,但我认为最好从一开始就手动构建可重用的库和代码脚本

使用“真实”编程语言编写脚本的一个很好的替代方法是使用一些更高级别的自动化框架,如您所提到的。正如您所推测的,Robot可重用的关键字和变量使得从测试中提取细节变得非常容易。中的测试用例很好地说明了这一点,演示还展示了如何通过Robot使用Selenium


你也问过我。我自己从来没用过,但它看起来确实很有趣。您可能对解释如何通过Robot框架使用它感兴趣。

或者,有人使用过sikuli吗?它与selenium ide相比如何?测试用例可以很容易地集成到测试运行程序中吗?如果我错了,请纠正我,听起来像是贵公司强制web开发人员将ID挖掘到元素标记中。而且,如果ID是测试人员和开发人员之间的合同,这将大大降低在测试用例中引入附带细节的风险。此外,由于需求的变化,花在修复上的时间实际上会减少。请问贵公司的QA工程师是如何使用Selenium IDE生成测试用例的,还是仅仅编写代码。与其他选项相比,这个选项的好处是什么。期待您的回复。谢谢,我们使用每个DOM元素的ID。但是它们可以自动生成,开发人员和测试人员都可以很容易地找到它们,因为它们被粘贴到原始html中(没有间接寻址,这只用于我们的测试,不用于外部消费)。一旦测试人员有了一个ID,他就不再需要在DOM树中导航,而只需要按ID选择并以| 123 | contains | asdf |等表格形式编写测试用例,如果其中一个测试表格发现错误,testsuite可以将元素ID提供给开发人员,开发人员可以立即知道他们破坏的确切位置。作为一名测试人员,我自己并没有创建一个bug,希望开发人员在正确的位置插入id。我自己做,通过检查集成测试是否覆盖了更改后的代码来判断自己是否可以接触生产代码。开发人员占用了他们的时间。我想这会让工作更快、更愉快地完成。那么,你说直接在Robot框架中编写测试更好吗?我有在Robot中编写测试的经验(我喜欢它),但我根本没有尝试过Selenium IDE。如果你的目标是创建Robot框架测试,那么最好从一开始就使用Robot语法来创建它们。例如,您不能轻松地将Selenium IDE测试转换为Robot语法。由Selenium IDE生成的测试级别非常低,一般来说很难维护,但显然在某些用例中这是可以的。