首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在同一笔交易上运行所有测试。Selenium Webdriver + Python

如何在同一笔交易上运行所有测试。Selenium Webdriver + Python
EN

Stack Overflow用户
提问于 2017-04-10 23:43:06
回答 2查看 229关注 0票数 1

我是一个自动化测试的新手。目前正在进行手动测试,并尝试使用Pyhton使用Selenium Webdriver自动化该过程。我正在创建一个测试套件,它将运行不同的脚本。每个脚本将在不同的功能上运行测试。然后我就卡住了。我正在开发金融web应用程序。初始脚本将创建财务交易,所有其他脚本将测试此交易的不同功能。我不知道该如何处理这种情况。我是否应该将第一个脚本(新创建的交易)中的URL传递给套件中的所有其他脚本,以便所有测试都在同一个交易上运行,而不是为每个测试创建一个新的测试?我该怎么做呢?或者可能有更好的方法来做到这一点?非常感谢您的建议!谢谢!

EN

回答 2

Stack Overflow用户

发布于 2017-04-10 23:50:09

最好是让每个测试都能够独立运行。如果您有一种方法可以通过API或数据库创建交易,而不是通过UI创建交易,则可以为每个测试调用此方法。而且,如果可能的话,还要在测试运行后清理这些数据。

如果这是不可能的,您还可以在数据库、xmljson文件中记录来自测试的一些数据。然后,您的后续测试可以读取该数据,以获得运行测试所需的数据。在这种情况下,它将是对您的财务交易的一些参考。

第二种选择并不理想,但在某些情况下可能是合适的。

票数 0
EN

Stack Overflow用户

发布于 2017-04-11 00:15:11

这里有几种方法可能会有所帮助,其中一些方法取决于您是在使用框架,还是只是使用selenium api从头开始构建。

  1. 在套件或测试级别使用设置和拆卸方法。

这可能是最简单的方法,并且接近你在帖子中所要求的。我工作过的每个框架都支持某种开箱即用的设置和拆卸方法,即使它不支持,也不难编写。在您的示例中,您有一个调用每个测试用例的脚本,因此只需在创建您正在处理的金融交易的套件的开头添加一个‘re()方法即可。

如果您想为每个单独的测试做一个新的处理,只需在每个测试用例的父类中放入the ()方法,这样它们就可以继承并在每个测试用例中运行它。

  1. 使用自定义测试数据

这可能是一种更好的方法,但前提是您拥有db访问权限或与dbm关系良好。您通常不希望一个测试用例的成功依赖于另一个测试用例的成功(第一个答案所说的isolaton是什么意思)。如果文档的创建以某种方式失败,那么其下游的每个单独的测试也将失败,即使他们正在测试一个可能正在工作的不同功能。这导致了许多覆盖范围的丢失。

因此,不要每次都创建一个新的财务文档,而是与DBM交谈,看看是否有可能创建一组测试数据,这些数据要么位于测试数据库中,要么插入到测试套件的开头。

这样,您就有了1个测试文档创建的测试,以及X个基于测试数据验证其功能的测试,而这些测试并不相互依赖。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43327551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档