python+unittest+requests+HTMLRunner编写接口自动化测试集
01.工具安装及环境配置
建议安装python3以上版本,python2版本官方2020年后不在更新及支持
python3安装包(附件也有安装包):
下载地址:https://www.python.org/downloads/
1、python3安装非常简单,直接下一步或者自定义安装自己选择安装目录
2、python3安装完成以后,需要配置一下环境变量 系统变量path内配置python3的安装路径和pip的安装路径
操作步骤:
a、计算机—属性—高级系统设置—环境变量:
b、系统变量—path中添加python的安装路径和pip的安装路径:
3、验证python是否安装成功 系统dos命令窗口输入python,看到python版本提示并且进入python命令行:
02.IDE–pycharm的安装及配置
安装包下载地址:https://www.jetbrains.com/pycharm/download/
安装:
1、安装一直点击下一步就可以
2、破解:pycharm64.exe破解教材
3、https://www.cnblogs.com/jiyu-hlzy/p/11726732.html
配置:
pycharm安装完成后,需要配置一下python环境
1、打开pycharm,File–setting
2、点击setting,找到project interpreter,如下图所示:
3、在如下图所示地方,添加你安装在本地的python.exe文件
4、配置完成
02.unittest框架介绍及代码工程目录介绍
01.unittest单元测试框架介绍
一个测试用例是一个独立的测试单元。它检查输入特定的数据时的响应。 unittest 提供一个基类: TestCase ,用于新建测试用例
我们在创建测试类的时候需要继承unittest的基类TestCase
import unittest
class TestDemo(unittest.TestCase):
def setUp(self):
pass
def test_01(self):
print("test11111")
pass
def test_02(self):
print("test22222")
pass
def test_03(self):
print("test22222")
pass
def tearDown(self):
pass
if name == “main”:
unittest.main()
以上TestDemo类中有五个独立的方法:
1、其中setUp为函数初始化方法,意思就是运行每一个test开头函数都要提前执行setUp函数,在接口测试中通常用作数据初始化
2、tearDown也是初始化方法,与setUp不同的是它是在每一个test开头的函数运行结束后都要执行一次
3、test_01、test_02、test03这三个方法我们可以称之为测试用例,接口的调用都要在这里进行,而且方法名称必须以test开头
4、if name == “main”: 这个大家可以理解为java的main方法
02.代码工程目录
不同的目录放置不同功能的代码,工程目录有助于我们管理代码和后期维护
初步设定工程目录为:
1、OperationBackground为项目名称
2、Common用来存放公共方法
3、config存放配置相关文件
4、Debug用来调试
5、Pamers存放接口数据参数
6、Scripts存放测试用例
03.代码实现
01.通过requests库实现一个简单的http请求
1、首先要安装requests库,通过pip安装
2、pip install requests
3、然后导入requests包
4、import requests
5、3、请求一个接口,请求方法为get
6、例如:http://192.168.2.158:8888/app/mock/16/GET/operation/v1/tradeData/queryTradeByType?beginDate=2020-04-26&endDate=2020-04-26
7、我们可以通过requests.get来调用get方法,访问url
其中 r 为response对象
02.框架搭建
Commons中存放公共方法
例如封装的Client类
Config—Global中存放配置信息
例如:存放get和post的url信息
Script中存放测试脚本
03、脚本执行
脚本执行的策略:
1、包名+文件名+类名为一个测试用例集
2、每一个类里面包含同一个接口的多条用例
3、将所有的测试用例集存放在一个单独文件中的函数下的列表中
4、我们通过调用这个方法,遍历其中的列表,来实现批量执行用例
用例集如下所示:
批量执行用例实现:通过for循环遍历
for test in allTestCases: # 所有用例
try:
# 最关键的就是这一句,循环执行数据数的里的用例
suite.addTest(unittest.defaultTestLoader.loadTestsFromName(test))
except Exception:
print(‘ERROR: Skipping tests from “%s”.’ % test)
try:
import(test)
except ImportError:
print(‘Could not import the test module.’)
else:
print(‘Could not load the test suite.’)
04、邮箱配置
Config–>Global–>EmailSetting
实现附件地址、发件人、发件人密码、收件人、邮箱服务器、邮箱端口的灵活配置
配置信息如下:
EmailSetting = {
# --------------邮箱信息配置---------------
‘filename’: ‘C:\Users\Administrator\Desktop\test_result.html’, # 附件地址
‘from_addr’: ‘123@aduer.com’, # 发件人
‘password’: ‘123456’, # 密码
‘to_addr’: [‘123@aduer.com’,‘222@aduer.com’], # 收件人,添加多个收件人时用“,”隔开
‘smtp_server’: ‘smtp.exmail.qq.com’, # 邮箱服务器
‘smtp_port’: 25 # 邮箱端口
}
01、注意
1、因后台定义方便大家使用,get请求的传参方式为URL_ENCODE,
POST请求有form json xml file,根据实际情况使用
2、目前因接口缘故只定义了两种请求方式,分别为get和post,其他请求方式根据实际情况添加
3、目前定义了标准的断言方法,分别为:响应状态码、响应时间、预期值与实际值的对比,如需其他断言,可以在脚本中自定义
4、框架定义时定义了以字典的方式传参,定义参数时,请以字典的格式定义
本文地址:https://blog.csdn.net/longzhijun101/article/details/107381105
推荐阅读
-
python接口自动化测试之接口数据依赖的实现方法
-
spring boot2.0.4集成druid,用jmeter并发测试工具调用接口,druid查看监控的结果
-
SHELL自动化--接口测试
-
Python http接口自动化测试框架实现方法示例
-
python接口自动化测试之接口数据依赖的实现方法
-
荐 Easy-Test: 接口自动化测试平台
-
利用Python如何实现数据驱动的接口自动化测试
-
基于pytest+requests+allure 进行接口自动化测试
-
资深程序员用Python实现数据驱动的接口自动化测试!
-
Python接口自动化测试教程 -- 2. 用Django开发一个简单的POST | GET接口