2012-08-06 96 views
0

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

我心里有几个选项:

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

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

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

任何人都可以启发我哪一个是最好的方法来使用?或任何其他建议?

回答

0

您是否需要在所有浏览器中运行每个测试?否则,混合和匹配 - 选择你想在哪个浏览器中运行的测试。您可以像上面的选项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子句,您可以使用它来选择为该测试选择哪个数据集。

+0

感谢您的回复:)是的。我的理想测试是在所有支持的浏览器中运行每个测试。我们将使用Java + Selenium WebDriver。如果第二种选择是选择,我们很可能只保留一组测试数据,但是在执行'if'子句时,前缀'FF'和'IE'将被附加到测试数据中。但不太确定第一种选择是否是更好的选择?正如我发现人们倾向于在每次“测试”运行之前重置数据库。但'测试'可能是不同的功能测试,而不是不同的浏览器测试。 – 2012-08-07 08:22:44

+0

当你说“测试数据需要是唯一的”时,仅用于登录或其他可访问的数据。如果你的测试是在java中,你可以登录为数组login = ['FF_User1','IE_User1']和browser = ['FF','IE'],所以登录[0]的组合是用于浏览器[0 ]和登录[1]用于浏览器[1]。此外,将测试数据保存在csv或制表符分隔文件中,名称分别为xyz_FF.txt和xyz_IE.txt,以便轻松分离出唯一数据。你也可以假设row1 = FF,row2 = IE或者更好......数据有“browser | login | password | test data ...”。 – aneroid 2012-08-07 10:34:42

+0

我假设测试数据只需在两个浏览器完成测试后重置 - 因为无论如何它都是唯一的,上述解决方案非常方便。否则,像'--browser FF'或'--browser IE'那样传递一个参数给runner,这样你可以:step1:复位数据,step2:运行FF,step3:复位数据,step4:运行IE。 – aneroid 2012-08-07 10:38:02