程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python requests+unittest+BeautifulReport實現自動化接口測試的簡單實現

編輯:Python

大家呢也是了解了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. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved