什么是自动化测试
把人对软件的测试行为转化为由机器执行测试行为的一种实践。
例如GUI自动化测试,模拟人去操作软件界面,把人从简单重复的劳动中解放出来,如果不了解可以参考下这个例子:Selenium实现微博自动化运营:关注、点赞、评论
本质是用代码去测试另一段代码,属于一种软件开发工作,已经开发完成的用例还必须随着被测试对象的改变而更新,因此,还有额外的维护成本。
自动化测试有哪些分类
按测试目的分类
- 功能自动化测试
- 性能自动化测试
按测试对象分类
- Web应用测试
- APP测试
- 接口测试
- 单元测试
为什么需要自动化测试
- 可以替代大量的手工机械重复性操作,测试工程师可以把更多的时间花在用例设计和新功能的测试上
- 可以大幅度提升回归测试的效率,非常适合敏捷开发过程
- 可以更好地利用无人值守时间,去更频繁地执行测试
- 可以高效实现某些手工测试无法完成或代价巨大的测试类型,例如:7*24小时持续运行的系统稳定性测试和高并发场景的压力测试
- 可以保证每次执行的操作具有一致性和可重复性,不会受人的感情因素影响。
Postman自动化测试演示
postman大家都用得挺多的,使用方法就不介绍了,详情可以查看:官方文档
1.新建集合
就是为了给待测试接口统一分类一下用
2.新建接口
下面是我添加的
3.填写自动化测试脚本
例如,我需要测试几点
- http状态码200
- 返回的json的code码是0
- 接口返回时间不小于1000毫秒,脚本如下
//查看httpCode码
tests["接口状态码200"] = responseCode.code === 200;
//判断请求时间
tests["返回时间小于1000毫秒"] = responseTime < 1000;
//返回body转json
var data = JSON.parse(responseBody);
//检查json数据
tests['code码必须为0']= data.code==0
测试结果结果如下
4.录入所有接口
然后接下我要对所有的接口进行这样的测试,把这些接口都录入,如下
5.执行自动化测试
点击集合的Run按钮
弹出如下界面,可以填写相应的参数,这里我用默认的
点击Run,执行结果如下
可以看到,我们测试了32个接口,其中25个通过,7个失败,有的是时间不满足要求,有的是状态码不对。
针对这个结果,我们可以自己去优化接口,就是这么简单,light weight baby!
此外,Postman还推出了命令行版本Newman,可以配合Jenkins做接口自动化测试和持续集成