1. 接口自动化
1.1 概念
接口测试:是对系统或组件之间的接口进行测试,主要是校验数据的交换、传递和控制管理过程,以及相互逻辑依赖关系
自动化测试:是把以人为驱动的测试行为转化为机器执行的一种过程
接口自动化测试:是让程序或者工具代替人工自动完成对接口进行测试的一种过程
1.2 流程
- 需求分析
- 请求(请求url、请求方法、请求参数)
- 响应 (响应数据、状态码)
-
挑选需要做自动化测试的接口
-
设计自动化测试用例
-
搭建自动化测试环境(如:python+pycharm)
-
设计自动化测试项目的架构(参数化、用例执行框架)
-
编写代码
-
执行测试用例(unitest、pytest)
-
生成测试报告(htmltestrunner\allure)并分析结果
2. Requests库
2.1 什么是Requests库
2.1.1 介绍
Requests库是用Python编写的,基于urllib,采用Apache2 Licensed 开源协议的HTTP库,相比urllib库,Requests库更加方便,可以节约我们大量的工作,完全满足HTTP测试需求
2.1.2 安装
pip3 install requests //python3.8
输入pip3 show requests如下图即安装成功
如下图:
2.2 发送请求
常见的HTTP请求方式:GET、POST、PUT、DELETE、HEAD、OPTIONS
使用requests发送网络请求很简单,只需要调用HTTP请求类型所对应的方法即可
2.2.1 GET请求
import requests
response = requests.get("http://www.baidu.com")
请求方法的返回值response为Response对象,我们可以从这个对象中获取我们想要的响应信息
1、获取请求url:响应对象.url
2、获取响应状态码:响应对象.status_code
3、获取响应内容:响应对象.text
"""
目标:GET请求方法演练
案例:http://www.baidu.com
请求:
1、请求方法:GET
响应:
1、响应对象.url #获取请求url
2、响应对象.status_code #获取响应状态码
3、响应对象.text #以文本形式显示响应内容
"""
# 1、导包
import requests
# 2、调用get
url = "http://www.baidu.com"
r = requests.get(url)
# 3、获取请求url
print("请求url:",r.url)
# 4、获取响应状态码
print("状态码:",r.status_code)
# 5、获取响应信息
print("响应内容",r.text)
请求带参(动态传参)
-
http://www.baidu.com?id=1001
-
http://www.baidu.com?id=1001,1002
-
http://www.baidu.com?id=1001&kw=北京
2.2.2 POST请求
步骤:
- 导包 import requests
- 调用post方法 requests.post(url,json,headers,data)
data与json区别
- data:字段对象
- json:json字符串
- 在python中字典对象和json字符串长得一样,但是后台格式是有区别的
- 如何将字段对象转为json字符串?
- 1、导入json
- 2、json.dumps(字典对象)#转换json字符串
- 如何将字段对象转为json字符串?
响应数据.text和.json区别
- json方式返回类型为字典,可以通过键名来获取响应的值
- text:返回的类型为字符串,无法通过键名来获取响应的值
- 共同点:长得都像字典
import requests
import time
# 2、调用post
#请求url
# 设置cookies变量
cookies = {
"PHPSESSID":"mcu190hl4685pjrru96t4t7g17"}
url = "http://106.54.9.13/index.php/admin/User/add_user"
#请求headers
headers = {
"Content-Type":"application/json"}
#请求json
data = {
"nickname": "hello",
"passwor