本文做了什么。
本文主要是讲述单接口测试,旨在让没有接触过接口测试的测试人员快速开始测试。如果有问题可以留言,如果该篇不满足你的胃口。等待我的下次更新,下次更新会开始讲解http原理和依赖接口需要的操作。
什么是接口测试?
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
它还是功能测试,但是又不是一般的功能测试。接口测试抽离了 UI 和交互的限制,直接面对了我们的服务器。但是接口测试有可能破坏功能的完整。有的地方仅仅在界面限制了用户无法操作,但是接口并没有对特殊情况作出处理(这其实十分常见,为了避免重复编码和减轻服务器压力,同时对安全性要求不高的情况下的处理方式)。一个严谨的接口会完全实现校验,但是没有的情况也不要觉得意外,结合项目添加需要的限制即可。
如何写接口的测试用例
0、环境搭建
我手撸的一个小服务器https://github.com/JoeEmp/performanc_testing_field(这个是小服务器的接口文档规范)
1、根据接口接口文档写用例
1-1、接口文档
接口文档包含以下要素
请求路径、请求方式、请求参数、正常返回,异常返回(异常返回如果包含在通用规范的情况下则不写)
1-2、需求文档
以上面的接口为例,需求是用户名和密码均为必填项,用户填写用户名和密码(前端加密),如果用户名和密码一致则登录成功,如果任意一项没填则提示用户填写,如果密码错误或用户不存在则提示对应错误。
1-3、测试用例
这里和我们的功能测试一样,我们可以使用场景、等价类、边界值等方法去写用例,这里要注意从接口文档看出 Content-Type 为 multipart/form-data,所以我们不用检测参数类型是否正确(关于Content-Type和二进制类型,后面会讲解,此处略过。)
用例 id | 用例名称 | 请求路径 | 请求方式 | 请求参数 | 预期响应 | 实际响应 |
---|---|---|---|---|---|---|
login_1 | 错误请求方式请求,httpcode405 | /jmeter/login | GET | {"username":"123","password":"123"} | httpcode405 | |
login_2 | 正常用户登录,返回 token | /jmeter/login | POST | {"username":"nliu@yahoo.com","passsword":"f18581cea866c3ddaaa3c39277e5d87d"} | {"code":0,"token":"xxx"} | |
login_3 | 系统不存在用户,返回用户不存在 | /jmeter/login | POST | {"username":"123","passsword":"f18581cea866c3ddaaa3c39277e5d87d"} | {"code":-1,"msg":"用户不存在"} | |
login_4 | 传入未加密密码,返回密码错误 | /jmeter/login | POST | {"username":"nliu@yahoo.com","passsword":"V&48Pl6tyl"} | {"code":-1,"msg":"密码错误"} | |
login_5 | 不传用户名,返回 username 不能为空 | /jmeter/login | POST | {"passowrd":"123"} | {"code":1,"msg":"username 不能为空"} | |
login_6 | 不传密码,返回 password 不能为空 | /jmeter/login | POST | {"username":"132"} | {"code":1,"msg":"password 不能为空"} |
1-4、使用postman执行用例
有如下配置
- 请求方式 POST
- url,这里我设置了环境变量,后面将讲到),我们先使用本地去代替
http://localhost:10086/jmeter/login - 请求参数选择 from-data,填上username、password和对应的值。
- 断言 正常入参的情况下,会不会返回token
配置好用例后,我们发送请求即可。
1-5、批量执行
- 本章全部的接口测试用例集(https://www.getpostman.com/collections/8b84fc03bd743f7eb848),导入的方法在文末。
复制用例 : 直接选择一个用例然后,ctrl+c, ctrl+v 然后修改成我们的需要的样子
当我们要执行多个用例时,一个一个会疯掉。我们这时需要批量执行。选择我们的接口集,点击run
然后执行即可
执行结果
- 关于测试报告
postman 只提供执行结果的json数据
有个快捷的方法生成测试报告 https://www.jianshu.com/p/7474c79abcfc
不过你也可以使用简单的脚本解析json数据,转成页面。(看看哪天去补一下这个坑)
1-6 导入
1、选择导入
2、选择link,贴上链接
3、一路操作下来就直接导入了