接口测试概念:
接口测试:按照约定的格式给待测软件传入某些数据,之后检测端口给的返回值是否正确。通过协议,域名,端口,路径测试。通过PostMan或者(requests)模块进行测试。保存一些记录,方便以后使用。
环境的搭建:
创建虚拟环境:
# 查看通达信基本面编程接口,python3的位置
which 通达信基本面编程接口,python3
/urs/bin/通达信基本面编程接口,python3
# 指定通达信基本面编程接口,python3解释器创建虚拟环境
mkvirtualenv test_v7 -p /usr/bin/通达信基本面编程接口,python3
:安装依赖的包:
修改fdfs客户端安装包的位置路径:pwd查看fdfs客户端所在的位置vimrequirements.txt修改fdfs所在的路径
恢复数据库数据:
重新创建数据库:mysql>createdatabasemeiduo_mall_dbdefaultcharsetutf8;QueryOK,1rowaffected(0.01se
生成数据库表:通达信基本面编程接口,python3managpymigrate
恢复数据:cdmeiduo_mall/scripts执行导入数据库数据的脚本文件./import_areas_data_to_dsh
创建用户与修改密码:通达信基本面编程接口,python3managpycreatesuperuser修改原有用户的密码:通达信基本面编程接口,python3managpychangepasswordpython
PostMan的基本使用
根据接口文档使用PostMan完成接口测试:
查询用户是否存在:测试结果:用户不存在。
:导入导出PostMan的记录:
新建文件夹:
将测试记录保存到文件夹中:
:将数据导出备份:选择桌面,发现桌面多出一个文件。导入备份数据:
Requests模块的基本使用:
注意:Requests是客户端的请求,不是后端的模块。Requests常用于爬虫和测试。Requests原理就是发送http请求,获取后端响应。
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)
:编码问题:
问题:刚才使用resp.text打印出来的是中文乱码。原因:Response对象默认使用的是ISO-8859-而中文显示需要utf-解决:设置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)
:Responsjson()的使用:
作用:如果后台返回的是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'}
#{'ip': '116.30.197.160'}
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)
效果:
定制头部信息和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)
测试结果:
发送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())
测试结果:
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())
测试结果:
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点