一、接口文档
接口文档:主要定义接口的一些通用规则,是后端工程师指定的
接口测试中需要我们根据接口文档去postman中请求,来获取异常用例的响应体【也就是预期结果】, 同时需要我们自己判断是否正确
postman:method、url、headers、body
注意:接口返回的status_code指的是状态码,是HTTP协议规定的,而返回的code返回码是开发自己定义的
二、测试框架
分层设计思想:每一个文件都是一个包文件【带有__init__文件】
1.路径问题:
--可以放到配置文件,因为是项目运行过程中不会发生变化,但是对于不同的项目有可能发生变化
--不放到yaml当中?因为yaml当中存放静态数据,而文件路径有可能变化
--放到py模块中,
2.测试报告的路径
--路径处理
--时间戳添加到测试报告名称中
3.请求数据的格式转化
headers /data数据格式:从Excel读取的字符串转成字段,使用eval( )
例如:excel里的数据data-->{“mobile_phone”:“13088889999”,“pwd”:“12346”},
读取出来是字符串“{“mobile_phone”:“13088889999”,“pwd”:“12346”}”,用eval()去字符串
4.断言
全量断言:所有数据都要进行对比,一个字都不能差
部分断言:code 、msg
5..yaml配置文件
编写和读取yaml
注:yaml种的数据也可以写在config.py模块中
6.json格式的转化
body中传的参数是json,那么从excel读取的数据要转化成json格式,才能传参成功。
什么是json:json是一个字符串格式,有特定的要求:
json当做true、false、null,双引号(
- 字符串里面必须是双引号
- null表示什么都没有(不能使用None)
- false,true 必须是小写的(不能大写)
a = '{"pwd":"12345678","type":1}' b = '{'pwd':'12345678','type':1}' c = '{"mobile_phone":None,"pwd":"12345678","type":1}' d = '{"mobile_phone":True,"pwd":"12345678","type":1}' # 判断是不是json,到网上找json工具(json在线解析) # a是json # b不是json,不能用单引号 # c不是json,不能用None,可以替换成null(json表示数据为空时用null,不能用None) # c不是json,不能用小写的True,要用TRUE
json.loads(),是json转字典,注意有s
json.dumps( ), 是字典转json,注意有s
import json # 把json数据转化成python字典(用json.loads(),不要用eval()) json_data = '{"mobile_phone":true,"pwd":"12345678","type":1}' dict_data = json.loads(json_data) print(dict_data) # 把字典转成json字符串 new_dict_data = {'name':'yuz','password':None,'femal':False} json_date= json.dumps(new_dict_data) print(json_date)
7.什么时候该记录logger
--记录错误,记录运行的流程
--断言失败logger.error( ),然后抛出异常raise e
--断言成功logger.info( )