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

大家呢也是了解了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,还有咱们请求的必要参数

[  {    "path": {    "url": "https://api.weixin.qq.com/cgi-bin/token"  },    "params": {    "grant_type": "client_credential",    "appid": "自己的",    "secret": "自己的"  }  }]

数据放在data文件夹里面

接下来是测试用例的编写,其中断言部分是与返回的数据作对比,可以看出如果参数对,返回的数据应该是以下这样的,所以与这个7200作比较,返回的数据里面有7200,就说明这个成功了

{"access_token":"ACCESS_TOKEN","expires_in":7200}
测试用例如下
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实现,具体的代码如下

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")

    看一下执行的效果,下面就是测试报告了

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

找BUG的老爷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值