自动化测试:功能测试设计七技巧
作者:网络转载 发布时间:[ 2012/5/21 9:29:20 ] 推荐标签:
这个测试检查的第一步是输入文本“one”,随后是文本“two”,然后是“three”。“*”表明测试允许“one”"two""three"之间任意的字符。测试第二步点击导致“one”“two”“three”倒序排列,然后测试第三步检查这个排列是否成功了。
一次且仅一次
正如上面所指出的,在应用中等待一个元素出现是较好的实践。通常这样的例子中一旦元素出现,测试会希望操作这个元素,实例是点击。这是抽象通用动作到期自己的方法或者模型的佳实践,然后测试按需调用这些动作。下面是一个例子,在Fitnesse和Selenium语法中wait-for-and-click抽象。
以下是引用片段:
!| scenario | Wait for and click | elementLocator |
| waitForElementPresent | @elementLocator |
| click | @elementLocator |
So from a test itself we need only write:
| open | www.foo.com |
| Wait for and click | link=Welcome to Foo! |
这个例子中仅节省了一行键入,如果“Wait for and click”在测试套件中执行了数百次或者数千次,可维护性和可读性。另一个动作例子是抽象到期自己可能登陆的模型,选择列表中的所有元素,为一系列错误做检查。
不要使用条件语句
有时,测试环境具有不可预见性。在这样的案例中,在测试中使用条件语句很诱人,例如“if this element exists, click it, if it does not exist, do something else.”这种方法会存在很多问题。一个问题是类似使用索引代替具体定位器导致的问题:如果应用测试改变,自动化测试将会以完全不可预期和位置路径传下去,导致错误失败(或者更糟糕的是错误成功),让维护更加困难。另一个问题是条件语句声明的一个分支(错误地)出现在一起,测试在引入时从未显示一个缺陷。
使用Javascript创建可重用随机数据
后,下面是使用Selenium和Fitnesse,进行具体的测试数据佳实践的例子。在这个例子中,测试需要输入的Social Security Number,然后检查SSN是否实际上输入到应用中:
以下是引用片段:
| type; | ssn | javascript{RN =Math.floor(Math.random()*9999999);while (String(RN).length < 8) { RN=RN+‘0‘;}} |
| $SSN= | getValue | ssn |
| click | link=Save |
| type; | search | $SSN |
| GET SEARCH RESULTS CONTAINING THE SSN |
Selenium会内嵌评估Javascript。这种测试的首行键入域ID值为“ssn”,在运行中生成随机的9个数字,通过评估Javascript作为type()动作的证据。第二行使用Fitnesse功能来存储来自“ssn”域的9个数字,称之为“$SSN”。然后测试输入九个相同数字到这个域,其ID值为“search”。在测试本身解决数据需求是的时候,这是一种高雅有用的方法,在任何合理的测试工具或者框架中同样的方法应该有效。
优良测试的优良设计
这些只是一些例子,协助确保自动化测试强力并可维护。很多其他的例子也存在,每一种自动化测试工具或者框架都有优良的设计实践单独针对工具。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11