接口测试的话,我对所有负责的接口做了自动化测试,
1.接口自动化测试可以使用postman做,主要是在Tests脚本里面写js代码,将拿到的响应做校验
2.Jmeter也可以做,主要用了参数化/json断言/响应断言/正则提取器/if控制器等组件做
3.还有就是使用pytest+requests写python脚本做自动化测试,我自己的话使用的是pytest+requests做的接口自动化(三种情况)
requests是python的一个做网络请求的库,pytest可以做单元测试,结合到一起就可以做接口自动化
接口自动化的话是需要结合业务逻辑来做的,不同的业务逻辑的接口测试点是不同的 比如注册接口,用户名6-18位,要求英文大小写,数字,那么我们的case(测试用例是test case,我们很多时候直接说case,自己要会读)根据边界值需要测5位,6位,18位,19位的用户名,还有非英文和数字的字符,这些测试数据可以写道csv文件中,可以通过python中的csv模块去读取测试数据,然后分别放入注册接口中做请求。
请求结果的话需要验证很多信息,首先状态码,200是成功,其他的像4xx的请求出错,5xx的服务器端的错误;其次如果状态码是200,还需要验证响应数据里面的code,这个是后端给的结果码,通过这个码也可以知道请求哪里有问题,进而提示用户,这个项目code是1代表成功,其他代表失败,所以如果我们传了不符合要求的用户名,就算密码没有问题,都不能注册成功,需要返回非1的code,我们项目的话用户名格式不正确会返回-2(我瞎编的,你自己编),如果是密码格式不对code是-3,另外出来code还有一个errorMsg的字段,code非1的情况下这个字段会有数据,所以根据测试数据的长度,使用断言去判断最终的code是1还是其他,比如给了5位的用户名,结果码应该是-2,如果后端返回了不是-2,那说明接口有问题,如果给了6位用户名,密码格式也是没有问题的,那正确结果应该是注册成功,code是1,如果非1了,那接口也是有问题的;除了验证code,还要验证errorMsg提示是否正确,如果成功了,该返回的字段是否都已经返回,比如token,用户名,uid...
如果是列表数据,比如首页的变漂亮列表,测试的内容有不是很一样,像响应码就和注册的一样测试,结果码也类似,只不过不会有太多的错误code出现,一般都是成功的码1,列表的数据需要测试页面数据的数量,我们这个列表一页是20条;因为tab是变漂亮,所以列表的数据内容必须是变漂亮相关的,列表数据里面有个字段是label,专门区分是哪种类型的数据,值是个数组,因为有些数据有多个标签,比如同时是推荐和变漂亮;
还有判断极端页码的数据,后端给的接口页码是从0开始的,我们可以判断负数页码是否有数据,判断最后一页和最后一页+1的页码是否还有数据;
还有有些接口是用户的数据,比如自己发布的内容,这种数据需要携带token才能拿到,尝试一下不带token能否拿到,带了token拿到的是否是当前用户的数据