前言:
接口自动化是指模拟程序接口层面的自动化,由于接口不易变更,维护成本更小,所以深受各大公司的喜爱。
接口自动化包含2个部分,功能性的接口自动化测试和并发接口自动化测试。
本次文章着重介绍第一种,功能性的接口自动化框架。
一、简单介绍
环境:Mac、Python 3,Pytest,Allure,Request
流程:读取Yaml测试数据-生成测试用例-执行测试用例-生成Allure报告
模块类的设计说明:
Request.py封装request方法,可以支持多协议扩展(get\post\put)Config.py读取配置文件,包括:不同环境的配置,email相关配置Log.py封装记录log方法,分为:debug、info、warning、error、criticalEmail.py封装smtplib方法,运行结果发送邮件通知Assert.py封装assert方法run.py核心代码。定义并执行用例集,生成报告
Yaml测试数据格式如下:
--- Basic: dec: "基础设置" parameters: - url: /settings/basic.json data: slug=da1677475c27 header: { "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko)\ Chrome/67.0.3396.99 Safari/537.36", "Content-Type": "keep-alive" }二、代码结构与框架流程
1、代码结构见下图:

2、框架流程见下图:

三、详细功能和使用说明
1、定义配置文件config.ini
该文件中区分测试环境[private_debug]和正式环境[online_release]分别定义相关配置项,[mail]部分为邮件相关配置项
# http接口测试框架配置信息 [private_debug] # debug测试服务 tester = your name environment = debug versionCode = your version host = www.jianshu.com loginHost = /Login loginInfo = email=wang@user.com&password=123456 [online_release] # release正式服务 tester = your name environment = release versionCode = v1.0 host = www.jianshu.com loginHost = /Login loginInfo = email=wang@user.com&password=123456 [mail] #发送邮件信息 smtpserver = smtp.163.com sender = test1@163.com receiver = wang@user.com username = wang@user.com password = 1234562、读取yaml测试数据后封装
yaml测试数据例子见第一节,一条接口可定义多条case数据,get_parameter为已封装好的读取yaml数据方法,循环读取后将多条case数据存在list中。
class Basic: params = get_parameter('Basic') url = [] data = [] header = [] for i in range(0, len(params)): url.append(params[i]['url']) data.append(params[i]['data']) header.append(params[i]['header'])3、编写用例
class TestBasic: @pytest.allure.feature('Home') @allure.severity('blocker') @allure.story('Basic')
