【问题标题】:Cross browsers testing - how to ensure uniqueness of test data?跨浏览器测试——如何保证测试数据的唯一性?
【发布时间】:2012-08-06 14:49:32
【问题描述】:

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

我有几个选择:

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

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

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

谁能告诉我哪一种是最好的使用方法?或任何其他建议?

【问题讨论】:

    标签: automation unique test-data


    【解决方案1】:

    您需要在所有浏览器中运行每个测试吗?否则,混合搭配 - 选择您想在哪个浏览器中运行哪些测试。您可以像上面的选项 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 + Selenium WebDriver。如果选择第二个选项,我们很可能只维护一组测试数据,但在执行“if”子句时,前缀“FF”和“IE”将附加到测试数据中。但不确定第一个选项是否是更好的选择?我发现人们倾向于在每次“测试”运行之前重置数据库。但“测试”可能是不同的功能测试,而不是不同的浏览器测试。
    • 当您说“测试数据需要唯一”时,是指仅用于登录或其他可访问的数据。如果您的测试在 java 中,您可以将登录作为数组 login = ['FF_User1', 'IE_User1'] 和 browser = ['FF', 'IE'] 所以 login[0] 的组合适用于 browser[0 ] 和 login[1] 用于浏览器 [1]。此外,将测试数据保存在名为 xyz_FF.txt 和 xyz_IE.txt 的 csv 或制表符分隔的文件中,以便轻松分离出唯一数据。您也可以假设 row1=FF、row2=IE 或更好...让数据具有“浏览器|登录|密码|测试数据...”。
    • 我假设测试数据只需要在完成两个浏览器的测试后重新设置 - 因为它是唯一的,所以上面的解决方案很方便。否则,将参数传递给运行器,例如--browser FF--browser IE,以便您可以:step1:重置数据,step2:运行 FF,step3:重置数据,step4:运行 IE。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-18
    • 2015-11-03
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多