大家呢也是了解了python requests的基本用法了,那么咱们就应用上单元测试框架unittest还有BeautifulReport简单的实现一下自动化的接口测试
一、搭建框架
咱们也是看一下图,需要创建的文件夹以及文件都在这里了,我这边用的pycharm,其他的开发工具也都是差不多的哈,创建完之后咱们开始往里面写代码
咱们以微信公众平台的获取token的接口来进行一下测试,首先需要获取接口相关的文档,咱们可以输入下面的链接,就可以直接看api文档了,链接https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html
请求的方法是get,其中我在这里罗列一下需要的请求参数
参数 | 是否必须 | 说明 |
---|---|---|
grant_type | 是 | 获取access_token填写client_credential |
appid | 是 | 第三方用户唯一凭证 |
secret | 是 | 第三方用户唯一凭证密钥 |
自己的appid和secret怎么获取到呢,这个需要咱们有自己的公众号了,在这里哈,如图所示,基本的参数有了之后,咱们就可以进行测试了
咱们使用数据驱动的方法进行测试,数据在json文件中,咱们先写一个json文件内容如下,里面写的有url,还有咱们请求的必要参数
代码语言:javascript复制[
{
"path": {
"url": "https://api.weixin.qq.com/cgi-bin/token"
},
"params": {
"grant_type": "client_credential",
"appid": "自己的",
"secret": "自己的"
}
}
]
数据放在data文件夹里面
接下来是测试用例的编写,其中断言部分是与返回的数据作对比,可以看出如果参数对,返回的数据应该是以下这样的,所以与这个7200作比较,返回的数据里面有7200,就说明这个成功了
代码语言:javascript复制{"access_token":"ACCESS_TOKEN","expires_in":7200}
代码语言:javascript复制from pyparsing import ParseExpression
import requests
import json
import unittest
from ddt import data, ddt, file_data
# from HTMLTestRunner import HTMLTestRunner
@ddt
class UnittestDemo(unittest.TestCase):
@classmethod
def setUpClass(cls) -> None:
pass
@classmethod
def tearDownClass(cls) -> None:
pass
# 采用ddt方式数据驱动,地址就是写的json的路径
@file_data("D:/interfacetest/apiDemo/data/testwechat.json")
def test_01(self, **kwargs):
print(kwargs["path"]["url"])
"""
正向的测试用例
:param kwargs:
:return:
"""
response = requests.get(url=kwargs["path"]["url"], params=kwargs["params"])
expectValue = '7200'
acutalValue = str(response.json()["expires_in"])
self.assertIn(expectValue, acutalValue)
print("请求数据:", kwargs)
接下来就是主函数了,主函数咱们采用BeautifulReport实现,具体的代码如下
代码语言:javascript复制from BeautifulReport import BeautifulReport
import unittest
if __name__ == '__main__':
discover = unittest.defaultTestLoader.discover("./test_case", pattern="testwechat.py")
BeautifulReport(discover).report("执行用例", filename="res.html", report_dir="./reports")
看一下执行的效果
测试报告
以上就是咱们简单的自动化接口测试了以后还会定期更新新内容哈