Automation 跨浏览器测试-如何确保测试数据的唯一性?

Automation 跨浏览器测试-如何确保测试数据的唯一性?,automation,unique,test-data,Automation,Unique,Test Data,我的团队是自动化新手,计划自动化跨浏览器测试。 我们不确定的是,如何确保每个浏览器的测试数据都是唯一的?由于某些业务规则,测试数据需要是唯一的 我没有什么选择: 按顺序运行测试。在每次测试完成后恢复数据库。 每次测试的测试报告将单独保存。如果发生任何错误,我们必须自己复制错误(数据已重置) 同时/按顺序运行测试。为每个测试数据添加前缀,以唯一标识不同浏览器测试的测试数据。例如,FF_User1,IE_User1 同时/按顺序运行测试。将设置多个测试节点并连接到不同的数据库。每个测试节点将使用不同

我的团队是自动化新手,计划自动化跨浏览器测试。 我们不确定的是,如何确保每个浏览器的测试数据都是唯一的?由于某些业务规则,测试数据需要是唯一的

我没有什么选择:

  • 按顺序运行测试。在每次测试完成后恢复数据库。 每次测试的测试报告将单独保存。如果发生任何错误,我们必须自己复制错误(数据已重置)

  • 同时/按顺序运行测试。为每个测试数据添加前缀,以唯一标识不同浏览器测试的测试数据。例如,FF_User1,IE_User1

  • 同时/按顺序运行测试。将设置多个测试节点并连接到不同的数据库。每个测试节点将使用不同的浏览器运行测试,测试数据将存储在不同的数据库中


  • 谁能告诉我哪种方法是最好的?或者其他建议?

    是否需要在所有浏览器中运行每个测试?否则,混合并匹配-选择要在哪个浏览器中运行的测试。您可以像上面的选项2那样组织测试数据

    根据您使用的自动化工具,执行期间使用的数据可以组织为迭代:

    Browser  |  Username  |  VerifyText(example)    #headers
    FF       |  FF_User1  |  User FF_User1 successfully logged in
    IE       |  IE_User1  |  User IE_User1 successfully logged in
    

    如果您想随机选取任何适用于测试的数据,并且只想确保浏览器使用自己的数据集,那么请按浏览器类型分隔表/数据源。自动化工具应该有一个
    if
    子句,您可以使用它来选择为该测试选取的数据集。

    谢谢您的回复:)是的。我的理想测试是在所有支持的浏览器中运行每个测试。我们将使用Java+SeleniumWebDriver。如果选择第二个选项,我们很可能只维护一组测试数据,但在执行'If'子句时,前缀'FF'和'IE'将附加到测试数据中。但不确定第一种选择是否是更好的选择?正如我发现的,人们倾向于在每次“测试”运行之前重置数据库。但是“测试”可能是不同的功能测试,而不是不同的浏览器测试。当你说“测试数据必须是唯一的”时,那只是用于登录还是也用于其他可访问的数据。如果您的测试是在java中进行的,那么您可以将登录名作为数组登录名=['FF\u User1','IE\u User1']和浏览器=['FF','IE'],因此登录名[0]的组合用于浏览器[0],登录名[1]用于浏览器[1]。此外,将测试数据保存在csv或制表符分隔的文件中,文件名为xyz_FF.txt和xyz_IE.txt,以便轻松分离出唯一的数据。您也可以假设row1=FF、row2=IE或更好…让数据具有“浏览器|登录|密码|测试数据…”。我假设测试数据只需要在两个浏览器完成测试后重置-因为它是唯一的,所以上述解决方案很方便。否则,向运行程序传递一个参数,如
    --浏览器FF
    --浏览器IE
    ,以便您可以:步骤1:重置数据,步骤2:为FF运行,步骤3:重置数据,步骤4:为IE运行。