今天总结一下在做自动化测试中测试用例设计的一些建议,总结为三原则:
1. 保持Case之间的独立性
case独立性就是能够独立运行,当我们有随机的跑其中某个Case或乱序的跑这些Cases时,测试的结果都应该是准确的。
比如在执行过程中用例的运行环境取决于其他测试用例的执行状态,那么,其中的测试用例不能复用时,与之相关的测试用例的可复用性也不复存在。
有时候我们碰到在本地没问题,但是在server上跑有问题,大概率就是这个原因导致的。
2. 提高Case执行效率
测试人员能在最短的时间内执行测试覆盖,不仅能提高团队的工作效率,也可增强团队的信心
a.如果有对执行条件的检查,若检查失败,则尽快退出执行;
b.将数据准备或环境清除等工作抽取成关键字放到更高的层级中,可以合理利用TestNG的注解来实现;
c. 用例中尽量少的出现sleep,建议用"wait until ..."来代替;
d. 可以采用并发执行用例的方法来提升效,这需要原则1case的独立性来做保证。
3. 减少case的依赖性
依赖包括执行环境,测试对象,外部设备
执行环境:
你在本地上使用Webdriver框架编写、调试用例后,上传到代码块,然后其他同事拉取你的用例在他的本地运行,随后又被部署到持续集成服务器上。所以你编写的用例时就要尽量避免使用不同平台的库或者shell命令。这个我们一般可以用Maven来进行依赖管理。
测试对象:
使用Page Object模式,主要是将每一个页面抽象成一个页面对象类,把该页面中的元素定位,元素操作,业务流程等都封装在该类的方法中,编写用例时,直接已面向对象的思想调用该页面类中的方法。同时,当页面元素属性变化时,只需要更改页面对象类即可。
外部设备:
有时候被测系统可能需要和硬件交互,外部设备可能会升级或更换,那我们可以将外部设备的操作从测试用例中抽离出去,封装成测试库,秩序维护这个测试库就可以了。比如打印功能。