前言
本章主要以【企业微信】为例讲述api自动化框架搭建
ps:有空再将代码会上传到github
- github链接:
以前也写过类似简单的接口自动化测试搭建:
如下参考链接:
- 接口自动化测试小demo:https://blog.csdn.net//article/details/123954028?spm=1001.2014.3001.5501
- 接口自动化测试框架搭建:https://blog.csdn.net//article/details/113175512
一、整体框架介绍
apis
-base包:封装api的基础类
-contract包:封装组织的所有api
data包:参数化数据(excel 或者 yml...)
logs包:日志文件
testcase包:封装测试用例类
utils包:工具包,例如读取参数化数据
二、具体框架搭建
Base包:
1、先创建一个base_api.py
-
为什么要单独封装一个BasePage呢? 如果说以后,request库等这些第三方库底层进行了修改了,我们只需要更改BasePage即可,不会影响到其他类的代码,从某种程度上来说也就是进行解耦
“”"
该类为api测试框架的基类
可以封装框架本身的东西,例如:request
“”"
import requestsfrom mikasa_script.mikasa_auto.workwx_api_autotest.utils.log_utils import logger
class BaseApi:
def send_api(self, req, tools=“requests”):
“”"
对发送接口测试的工具进行封装(可以使用urlib3/requests)
:param tools:
:param req:
:return:
“”"
# 如果没有发送工具,则默认使用requests
# if not tools:
# tools = “requests”
logger.info(f"获取到的工具为:{tools}“)
logger.info(f"获取到的接口发送的数据为:{req}”)
if tools == “requests”:
return requests.request(**req)
2、创建一个workwx_api.py,继承BaseApi
-
由于以后可能又去测试其他的软件的api,所以我们这边就单独再创建一个workwx_api的类继承BaseApi,为了区分软件api
“”"
该类为企业微信api类
这里可以封装针对企业微信的一些常用方法
“”"
from mikasa_script.mikasa_auto.workwx_api_autotest.apis.base.base_api import BaseApiclass WorkWxApi(