我听说有些工具可以在使系统UI具有适当元素之前使系统自动化。路径。(因此,在开发完成之前,我们不需要保持系统自动化)
有人可以告诉我这样的软件自动化工具吗?
#1 楼
您是否在询问测试驱动的开发?这种实践不仅需要工具,而且在编写测试或任何代码之前还需要特殊的步骤/过程。尝试在此处查看文章和工具列表:测试驱动开发(TDD)简介。当然,其中大多数都是单元测试工具。但是其中一些更为复杂。
另外,Wikipedia上有关TDD的文章充满了信息,但没有那么实际地描述:测试驱动的开发@ Wikipedi
我可以想象,如果您保留一些约束,您将能够通过TDD技术使GUI自动化,但这并不常见。有人说Selenium不是TDD的合适框架,但它只是一个工具,它取决于您将应用的过程。有些人只会使用简化的方法来编写代码之前编写测试,而无论框架是什么,他们都会编写代码。 (他们称之为TDD)。 Cocumber或Robot框架(与Protractor相同)可以采用这种方法,但是您需要自己编写框架。
ATTD工具有一个特殊领域,它与TDD的技术稍有不同,您可以在此处阅读有关差异和工具的一些信息:ATTD @ Asser Selenium
#2 楼
在开发应用程序时,您可以从单元测试开始。在Java中,您可以为此使用JUnit。如果您还没有一个功能齐全的系统,则可以使用模拟来模拟对象。在Java中,这是通过Mockito或JMockit完成的。
查看单元测试和TDD(测试驱动开发)。您可以在低于UI的级别上执行这些操作。如果有可用的API,则可以通过其余端点进行测试,而这些端点又有大量工具可供使用。例如:RestAssured,Karate,Postman。
在这里查看单元测试和集成测试之间的区别。
一旦这些测试到位,您可以添加一些UI测试在最前面。由于这些工具通常很慢且很脆弱,请尽量不要过多。
看看测试金字塔。
最后,如果您是UI测试人员,并且需要通过UI进行测试仅,在开发应用程序时,您仍然可以开始设计和实施测试。您可以使用Page Object模式来描述与系统的预期交互,声明将与之交互的元素以及实现该交互的方法,并在定位符可用时填充它们。这通常是我开发前端测试的方式。
评论
实际上,开发到底是TDD的首字母缩写。设计是一个非常不同的东西,某种程度上说是更高的层次,它表明TDD作为整体设计实践是好的。并非在所有情况下都是如此,因此最好坚持真正有效的方法,而不是此类理论。这可能会引起误解,因此为-1
–亲爱的
18-2-2在9:33
谢谢固定错别字:)
–马里特
18年2月2日在13:16
确定,然后提升为+1,但这是可疑的回应...
–亲爱的
18-2-4在20:07
#3 楼
您是UI测试人员,因此其他答案中建议的用于单元测试(TDD)的工具和方法对您几乎没有用。代码开发过程中做什么工作仅对第一次迭代有效。第一次迭代后,您应该在集成区域/系统中交付了工作代码(无论如何称呼),并且可以进行测试。在第一次迭代期间(通常需要1-3周),您可以应该非常仔细地阅读所有需求,查找冲突和/或遗漏的需求,并准备:客户可以阅读的文本中的测试方案(测试内容和方式),您将稍后扩展到可执行脚本
测试数据(或生成测试数据的工具)
评论
我强烈反对“单元测试的工具和方法对您没有用”。相同的工具和框架通常可以用于任何级别的测试,并且方法极为相似。
– Corey Goldberg
18年2月2日在19:27
@CoreyGoldberg-这取决于您对“极其相似”的定义。使用某些库API的单元测试代码与使用少量页面执行工作流的Selenium代码完全不同。是的,两者都可以使用相同的测试运行程序,并以相同的语言编写,但仅此而已。好的,我认为“没用”。
–Peter M.-代表莫妮卡(Monica)
18年2月2日在19:36
#4 楼
考虑到您使用Selenium,很可能您的目标是Web应用程序。一种选择是降低级别并使用HTTP协议执行测试,优点是:测试不如基于UI的测试那么脆弱
CPU并且基于协议的测试的内存占用量要低得多
通过添加更多线程(虚拟用户)就可以轻松地将功能测试转变为负载测试。
我唯一想到的一个缺点是基于协议的测试不会触发客户端JavaScript,因此依赖它的任何功能都应该以其他方式涵盖。
您可以在此处找到相当多的免费和开源负载测试工具。
如果您要坚持使用它,可以考虑使用Apache JMeter,也许最流行的多协议负载测试框架,支持Web,数据库,电子邮件服务器,文件服务器等。请参阅如何使用JMeter进行基于后端的功能测试,以了解有关一般使用负载测试工具,尤其是使用JMeter进行功能测试的概念的更多信息。
#5 楼
如果您严格执行仅限于黑盒测试的UI自动化,那么我建议您使用从顶部放在硒中的黄瓜之类的工具进行BDD / ATDD的自顶向下方法。直到开发完成,并行地,您可以基于用户故事开始开发功能文件,一旦开发完成,或者UI可用(样机),您可以开发并将硒代码插入(在步骤定义中)功能文件并自动点亮。 。
评论
同样,测试自动化是一个快速发展的领域,拥有大量资源。您做了什么研究此主题?硒使用什么语言?
我正在使用Java。