一: 接口测试概念(了解):
接口测试: 按照约定的格式给待测软件传入某些数据,之后检测端口给的返回值是否正确。
1: 通过协议,域名,端口,路径测试。
2:通过PostMan 或者(requests)模块进行测试。
3: 保存一些记录,方便以后使用。
二: 环境的搭建(掌握):
1: 创建虚拟环境:
# 查看python3的位置
which python3
/urs/bin/python3
# 指定python3解释器创建虚拟环境
mkvirtualenv test_v7 -p /usr/bin/python3
2: 安装依赖的包:
修改fdfs客户端安装包的位置路径:
pwd 查看fdfs客户端所在的位置
vim requirements.txt 修改fdfs所在的路径
执行命令进行安装:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
3: 恢复数据库数据:
重新创建数据库:
mysql> create database meiduo_mall_db default charset utf8;
Query OK, 1 row affected (0.01 sec)
生成数据库表:
python3 manage.py migrate
恢复数据:
cd meiduo_mall/scripts
执行导入数据库数据的脚本文件
./import_areas_data_to_db.sh
创建用户与修改密码:
python3 manage.py createsuperuser
修改原有用户的密码:
python3 manage.py changepassword python
三:PostMan的基本使用
1: 根据接口文档使用PostMan完成接口测试:
查询用户是否存在:

测试结果: 用户不存在。
2: 导入导出PostMan的记录:
1: 新建文件夹:




2: 将测试记录保存到文件夹中:



3: 将数据导出备份:


选择桌面,发现桌面多出一个文件。

4: 导入备份数据:



四: Requests模块的基本使用:
注意:
1: Requests 是客户端的请求,不是后端的模块。
2: Requests 常用于爬虫和测试。
3: Requests 原理就是发送http请求,获取后端响应。
1: Request简单的使用:
# 1: 导入requests模块包
import requests
# 2: 使用requests.get()方法获取一个Response对象
resp = requests.get('http://www.meiduo.site')
# 3: 打印响应码
print(resp.status_code)
# 4: 打印响应头
print(resp.headers)
# 5: 打印响应体,没有解码
print(resp.content)
# 6: 打印响应体,解码之后的
print(resp.text)
2: 编码问题:
问题: 刚才使用resp.text打印出来的是中文乱码。
原因: Response对象默认使用的是ISO-8859-1,而中文显示需要utf-8.
解决: 设置Response对象的默认编码格式:
# 1: 导入requests模块包
import requests
# 2: 使用requests.get()方法获取一个Response对象
resp = requests.get('http://www.meiduo.site:8080')
print(resp.encoding) # 默认是ISO-8859-1
# 指定编码
resp.encoding = "utf-8"
print(resp.encoding)# 修改成utf-8
# 3: 打印响应体,解码之后的
print(resp.text)
3: Response.json()的使用:
作用: 如果后台返回的是json数据,使用这个方法可以直接转换成字典。如果返回的不是json数据,报错。
import requests
response_postman = requests.get("http://postman-echo.com/ip")
print(response_postman.text, type(response_postman.text))
print(response_postman.json(), type(response_postman.json()))
#{"ip":"116.30.197.160"} <class 'str'>
#{'ip': '116.30.197.160'} <class 'dict'>
4: GET请求—传递URL请求
import requests
args_dict = {
"name": "任善文",
"age": 25,
"like": ["足球", "篮球"]
}
response_url = requests.get("https://postman-echo.com/get", args_dict)
print(response_url.text)
效果:

5: 定制头部信息和Cookie信息
import requests
args_dict = {
"name": "任善文",
"age": 25,
"like": ["足球", "篮球"]
}
headers_dict = {
"type": "json"
}
response_url = requests.get("https://postman-echo.com/headers", args_dict, headers=headers_dict)
print(response_url.text)
测试结果:

注意: 请求头中不能是中文,不然会报类型转换错误。
import requests
args_dict = {
"name": "任善文",
"age": 25,
"like": ["足球", "篮球"]
}
cookie_dict = {
"type": "json",
"name": "renshanwen"
}
response_url = requests.get("https://postman-echo.com/cookies", args_dict, cookies=cookie_dict)
print(response_url.text)
测试结果:

6: 发送post请求:
注意一点:data 传递表单数据,json传递json数据。

import requests
user_info = {
"username": "renshanwen",
"password": "12345678",
"remembered": True
}
response_post = requests.post("http://127.0.0.1:8000/login/", json=user_info)
print(response_post.json())
测试结果:

7: request.session的特点:
注意: 对于request.get()方法和request.post方法,不会具有状态保持的特性。也就是下次再发送不会携带上次的cookie。这就需要到request中的一个类,使用session类对象,可以实现状态保持。
先进行登录,如果登录后可以获取用户信息,就表示可以状态保持。
import requests
# 进行登陆
user_info = {
"username": "renshanwen",
"password": "12345678",
"remembered": True
}
response_post = requests.post("http://127.0.0.1:8000/login/", json=user_info)
print(response_post.json())
# 获取用户信息
response_post = requests.get("http://127.0.0.1:8000/info/")
print(response_post.json())
测试结果:

import requests
# 进行登陆
user_info = {
"username": "renshanwen",
"password": "12345678",
"remembered": True
}
# 获取一个Session对象
session_user = requests.Session()
response_post = session_user.post("http://127.0.0.1:8000/login/", json=user_info)
print(response_post.json())
# 获取用户信息
response_post = session_user.get("http://127.0.0.1:8000/info/")
print(response_post.json())
测试:

浙公网安备 33010602011771号