一、configparser读取配置文件
二、openpyxl:处理excel
三、pymysql:处理数据库:连接数据库、增删查找sql
四、re正则表达式提取:替换动态参数
五、request处理http请求
res.text 结果为字符串
res.json() 结果为字典格式
self.assertIn(A,B) 断言assertIn:判断的是字符串A是否包含在B中
1、响应状态码:200-成功,404-资源找不到,500-服务器异常,302-重定向;
2、接口自动化准备:
common:放公共代码;
test_data:测试数据;
test_case:测试用例;
test_result:log:测试日志、html_report:测试报告;
conf:存放配置文件;
run.py:执行文件
3、request模块介绍
HTTP请求、HTTP响应、Cookie
import requests
res=requests.get("http://www.lemfix.com")
print("请求头:",res.request.headers)#获取请求头
print("响应头:",res.headers)
print("状态码:",res.status_code)
print("cookies:",res.cookies)
print("根据key connect.sid获取值",res.cookies['_homeland_session'])
resp_dict=res.json()返回字典,响应文本的字符串转换为字典
4、DDT解决批量测试问题
5、openyxl完成excel的读写
1.接口自动化测试流程?
(1)获取接口文档,依据文档设计参数,获取响应,解析响应,校验结果,判断测试是否通过
(2)request:封装了get,post请求内容,以关键字参数的方式,封装了各类请求参数:header,cookies,data,token,封装了响应内容:status_code,json,cookies,url
2.接口测试用例的编写要点有哪些?
1)必填字段:请求参数必填项、可选项
2)合法性:输入输出合法、非法参数
3)边界:请求参数边界值等
4)容错能力:大容量数据、频繁请求、重复请求(如:订单)、异常网络等的处理
5)响应数据校验:断言、数据提取传递到下一级接口…
6)逻辑校验:如两个请求的接口有严格的先后顺序,需要测试调转顺序的情况
7)性能:对接口模拟并发测试,逐步加压,分析瓶颈点
8)安全性:构造恶意的字符请求,如:SQL注入、XSS、敏感信息、业务逻辑(如:跳过某些关键步骤;未经验证操纵敏感数据)
六/测试集
1、测试用例:TestCase
2、测试集:TestSuite
3、加载器:TestLoader:加载用例
4、执行器:TextTestRunner:执行用例
示例:
import unittest
from python_unnitest.test_method import TestMethod
suite=unittest.TestSuite()
loader=unittest.TestLoader()
#从测试模块里面加载测试用例
suite.addTest(loader.loadTestsFromTestCase(TestMethod))
run.py:
from python_unnitestimport test_suite
import unittest
runner=unittest.TextTestRunner()
runner.run(test_suite.suite)
5、生成测试报告
report_dir:测试报告路径+名称,这里用当前时间生成测试报告
import time
import os
base_dir=os.getcwd()
output_dir=os.path.join(base_dir,'Output\\')
#返回:日期
# date=time.strftime('%Y-%m-%d')
# 返回:年月日时分秒
date=time.strftime('%Y-%m-%d_%H_%M_%S')
file_name='{}report.txt'.format(date)
print(file_name)
report_dir=output_dir+file_name
with open(report_dir,'w+')as file:
runner=unittest.TextTestRunner(file,'test',2)
runner.run(test_suite.suite)