一、发送请求
method:请求方式 url:请求url params=None:get请求传参 data=None:post或者是put请求传参 headers=None:请求头 cookies=None:cookie files=None:文件上传 auth=None:鉴权 timeout=None:超时处理 allow_redirects=True:是否允许重定向 proxies=None:设置代理 hooks=None:钩子 stream=None:文件下载 verify=None:证书验证 cert=None:CA证书 json=None:post请求传参
二、响应
res.test() 返回文本信息
res.json() 返回的Json格式
res.content() 返回的字节内容
res.status_code() 返回的状态码
res.reason() 返回的状态信息
res.cookies() 返回的cookie
res.encoding() 返回的编码格式
res.headers() 返回的请求头
res.request.请求数据 返回的请求数据
三、接口自动化实战以及正则和jsonpath提取器
接口文档:
请求:请求方式,请求路径,请求参数,请求头
响应:响应码,响应信息,响应内容,响应头
面试题:接口自动化实现接口关联的三种方式以及提取变量的两种方式是什么?
实现接口关联的三种方式:
1.通过类变量保存中间变量实现接口关联
2.通过单独的文件保存中间变量实现接口关联
3.极限封装和工具一样只需要表达式就可以实现接口关联
提取变量的两种方式:
1.正则表达式提取(适合提取文本结果)
re.seach() 提取一个值,通过下标取值
re.seach(’表达’,被提取的字符串)
表达式:直接把周边的值复制过来裁剪想要的内容(.*?)即可提取
res_str = re.search('patient_name":"(.*?)"', res).group(1)
print(res_str)
#该方法即可提取患者的名称,同时注意group方法用于返回匹配的结果
,若是输入0那么会显示出全部的结果,若是输入1则只会显示第一个结果
re.findall() 提取多个值,通过下标取值
2.jsonpath提取(适合提取Json结果):
jsonpath.jsonpath(Json对象,"表达式")
jsonpath提取器表达式规则:
$ 根节点 (最起始的位置)
. 子节点 $.acc(意思就是在根节点下取子节点acc的值)
.. 递归取子节点
[] 代表取列表中的值,下标,从0开始
print(json.loads(json.dumps(res.json)).replace("","//"))转换uncode编码为汉字