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