unittest接口自动化

一、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)

你可能感兴趣的:(unittest接口自动化)