接口自动化之requests-2
接口自动化之requests 一、接口测试以及接口自动化的行业 二、requests库简介 三、全面认识requests库 中小型企业或者项目的接口自动化框架内 postman+newman+git/svn+jenkins jmeter+ant+git/svn+jenkins 接口自动化测试遇到的弊端 1.敏捷开发时代,接口数量巨大,工具无法做到团队协作和版本控制 2.功能写死了,对于一些复杂的接口(自定义加密以及签名接口)难以实现或者无法实现 3.项目里面有多种协议的接口:http,webservice,websocket,dubbo,实现困难 4.排错、定位问题困难 5.和甲方对接没有美观的HTML报告 6.多接口串联,数据库连接,日志监控 7.有些公司既要做接口自动化,又要做web自动化,接口+web结合 python的第三方库,主要用于做接口自动化测试 安装 pip install requests pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests 请求 响应 requests.get() response.json() requests.post() requests.put() requests.delete() requests.request() get请求 通过params传参(dict-字典类型数据) post请求 通过data和json传参 1.使用data传参 参数是dict-字典类型 2.使用json传参 默认请求头Content-Type:application/x-www-urlencoded,表示通过表单格式 格式:a=1&b=2 参数是str-字符串类型 默认请求头Content-Type:text/plain,表示通过文本格式 重要的请求头 Content-Type 传值的内容的格式 application/x-www-urlencoded 表单 multipart/form-data 表单中有文件上传 text/plain 文本 binary 二进制文件 Accept 客户端接收数据格式 X-Requested-With 异步请求 User-Agent 客户端的用户类型 Cookie Cookie信息 参数是dict或者str 默认请求头Content-Type:application/json, json格式 格式:{"a":"1","b":"2"} 总结 data传参是字典或者字符串,json传参都是字典类型的,可以是键值对或者非键值对(值为一个列表、字典、字符串类型的列表或者字典) put请求 通过data传参 delete请求 一般没有参数,只有url request请求,所有其他请求都是用这个核心方法 参数 method 请求方式 GET POST PUT DELETE OPTIONS HEAD PATCH url 请求路径 params GET方式传参 data json headers cookies POST方式或者PUT方式传参 POST方式传参 请求头 files auth timeout allow_redirects proxies cookie关联 文件上传 鉴权认证 发送数据的超时 可以只有连接时间 也可以传入连接时间和读取时间 允许重定向的请求 GET POST PUT DELETE OPTIONS HEAD PATCH allow_redirects 是否允许重定向 True-允许 False-不允许 代理 verify 验证 stream 是否流内容 False-响应内容很快返回 cert 传递ssl证书 把返回值转化为一个dict对象 response.text response.content response.status_code response.reason response.cookies 把返回值转化成文本 把返回值转化成字节类型数据 获取返回码 返回信息值 返回cookie信息 response.encoding response.url response.elapsed response.headers 返回编码格式 返回网址url 返回请求时间 返回响应头 response.apparent_encoding response.history 如:ISO-8859-1 从HTTP header中猜测的响应内容编码方式 返回内容编码格式 如:utf-8 从内容中分析的响应内容编码格式 返回历史记录 response.is_permanent_redirect 返回是否永久重定向 response.is_redirect 返回是否重定向 response.iter_content() response.iter_lines() response.links response.next 返回迭代内容 返回迭代连接相对于iter_content(),只返回有a标签,href行的内容 返回连接 返回下一步 response.raise_for_status() 如果不是200,产生异常request.HTTPError response.ok 是否返回是ok response.raw 返回raw response.close() 关闭请求 response.request 返回请求信息 response.request.path_url 返回请求的路径 response.request.url 返回请求的url 如:https://www.baidu.com/ 如:/ response.request.headers 返回请求的头 response.request.method 返回请求的方法 response.request.body 返回请求的主体,如post请求的主体 response.request.hooks 返回请求的钩子 response.request.copy() 返回请求的复制内容 传参时可以将非键值对的字典转为json字符串来传参 json.dumps(dict_value) 将字典格式转为json字符串 json.loads(json_str) 将json字符串转为字典格式
posted on 2022-04-15 13:15  大话人生  阅读(76)  评论(0编辑  收藏  举报