我是自动化测试的新手。 目前正在进行手动测试并尝试使用Pyhton使用Selenium Webdriver自动执行该过程。 我正在创建一个运行不同脚本的测试套件。每个脚本都将运行不同功能的测试。 而我卡住了。 我正在从事金融网络应用程序。最初的脚本将创建金融交易,所有其他脚本将测试此交易的不同功能。 我不知道如何处理这种情况。我是否应该将第一个脚本(新创建的交易)中的URL传递给套件中的所有其他脚本,因此所有测试都是针对相同的交易运行的,并且没有为每个测试创建新的脚本?我该怎么做呢? 或者可能有更好的方法来做到这一点? 非常感谢任何建议!!!谢谢!
答案 0 :(得分:0)
最好每个测试都可以单独运行。如果您有办法通过API或数据库创建交易而不是通过UI创建交易,则可以为每个测试调用该交易。并且,如果可能的话,还要在测试运行后清理这些数据。
如果无法做到这一点,您还可以在数据库xml
或json
文件中记录测试中的一些数据。然后,您的以下测试可以读取该数据以获得运行测试所需的内容。在这种情况下,它将是您的财务交易的一些参考。
第二种选择并不理想,但在某些情况下可能是合适的。
答案 1 :(得分:0)
这里有几种方法可能有所帮助,其中一些方法取决于您是使用框架,还是仅使用selenium api从头构建。
这可能是最简单的方法,接近您在帖子中提到的内容。我所使用的每个框架都支持开箱即用的某种设置和拆卸方法,即使它没有,也不难写。在你的情况下,你有一个调用每个测试用例的脚本,所以只需在套件的开头添加一个before()方法,创建你正在处理的金融交易。
如果你想为每个单独的测试做一个新的交易,只需将before()方法放在每个测试用例的父类中,这样它们就可以继承并运行每个测试用例。
这可能是更好的方法,但假设您具有db访问权限或与dbm建立良好关系。您通常不希望一个测试用例的成功依赖于另一个测试用例的成功(isolaton的第一个答案是什么)。如果文档的创建以某种方式失败,那么下游的每个测试都会失败,即使他们正在测试可能正在运行的其他功能。这导致大量失去的覆盖率。
因此,不是每次都创建一个新的财务文档,而是与DBM交谈,看看是否可以创建一组测试数据,这些测试数据位于测试数据库中或插入测试套件的开头。< / p>
通过这种方式,您可以使用1个测试文档创建的测试,以及根据测试数据验证其功能的X测试,并且这些测试不会相互依赖。