前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python requests+unittest+BeautifulReport实现自动化接口测试的简单实现

python requests+unittest+BeautifulReport实现自动化接口测试的简单实现

作者头像
找Bug
发布2022-07-22 15:28:38
2120
发布2022-07-22 15:28:38
举报
文章被收录于专栏:你的Bug我做主

大家呢也是了解了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")

看一下执行的效果

测试报告

以上就是咱们简单的自动化接口测试了以后还会定期更新新内容哈

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 找Bug 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档