網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
Python+Requests+PyTest+Excel+Allure?接口自動(dòng)化測(cè)試實(shí)戰(zhàn)_python
作者:測(cè)試界的吳彥祖 ? 更新時(shí)間: 2023-06-03 編程語(yǔ)言Unittest是Python標(biāo)準(zhǔn)庫(kù)中自帶的單元測(cè)試框架,Unittest有時(shí)候也被稱為PyUnit,就像JUnit是Java語(yǔ)言的標(biāo)準(zhǔn)單元測(cè)試框架一樣,Unittest則是Python語(yǔ)言的標(biāo)準(zhǔn)單元測(cè)試框架。
Pytest是Python的另一個(gè)第三方單元測(cè)試庫(kù)。它的目的是讓單元測(cè)試變得更容易,并且也能擴(kuò)展到支持應(yīng)用層面復(fù)雜的功能測(cè)試。
兩者對(duì)比:
Pytest項(xiàng)目實(shí)戰(zhàn):
第一步、搭建項(xiàng)目框架(創(chuàng)建Gwyc_Api_Script_Pytest項(xiàng)目目錄)
依次創(chuàng)建子目錄如下:base:存放一些最底層的方法封裝,協(xié)議,請(qǐng)求發(fā)送等。common:存放一些公共方法。config:存放配置文件。data:存放測(cè)試數(shù)據(jù)。?log:存放日志。report:存放報(bào)告。tests:存放用例。utils:存放公共類。 readme:用于說(shuō)明文檔。requirements.txt: 用于記錄所有依賴包極其版本號(hào),便于環(huán)境部署,可以通過(guò)pip命令自動(dòng)生成和安裝。
第二步、封裝請(qǐng)求方法(base目錄下面創(chuàng)建method.py)
封裝有兩種方法:
第一種:直接調(diào)用requests庫(kù)下面的request方法,并將所有需要用到的參數(shù)定義進(jìn)去,分為實(shí)參和行參,實(shí)參調(diào)用必須要傳參,行參可給默認(rèn)值,調(diào)用時(shí)可重新賦值也可以使用默認(rèn)值。這種方法代碼量少,不用做判斷,request會(huì)自動(dòng)根據(jù)傳入的參數(shù)進(jìn)行發(fā)送請(qǐng)求到服務(wù)器。
第二種:分別對(duì)各個(gè)請(qǐng)求方式按函數(shù)的形式封裝,分別調(diào)用requests進(jìn)行發(fā)送請(qǐng)求。以get和post為例:put,delete請(qǐng)求按一樣方法封裝,各個(gè)請(qǐng)求方式封裝完成以后再定義一個(gè)主方法,直接調(diào)用主方法會(huì)自動(dòng)根據(jù)請(qǐng)求方式進(jìn)行判斷調(diào)用各個(gè)請(qǐng)求函數(shù),這里也可以不對(duì)請(qǐng)求方式匯總封裝,直接調(diào)用各個(gè)函數(shù)進(jìn)行發(fā)送請(qǐng)求也是可以的。這種方法封裝涉及代碼量較多,也沒(méi)有能夠很好的用上requests庫(kù),因此推薦使用第一種方法。
第三步、封裝讀取文件的方法(common目錄下創(chuàng)建public.py):
1、這里需要用到python的os庫(kù),os 庫(kù)是Python標(biāo)準(zhǔn)庫(kù),包含幾百個(gè)函數(shù),常用的有路徑操作、進(jìn)程管理、環(huán)境參數(shù)等。
2、分別對(duì)獲取目錄和獲取目錄下文件進(jìn)行了封裝,直接調(diào)用并傳入相應(yīng)的參數(shù)即可使用。如下圖:
第四步、準(zhǔn)備數(shù)據(jù)(data目錄下創(chuàng)建data.xlsx)
將接口寫入excel表,將接口需要用到的字段都寫進(jìn)excel然后直接進(jìn)行讀取。
第五步、封裝讀取文件方法(utils目錄下面創(chuàng)建operationExcel.py)
定義一個(gè)文件類分別再定義一個(gè)方法獲取Sheet表,定義一個(gè)方法獲取出所有數(shù)據(jù)存放進(jìn)列表。
第六步、封裝登錄方法(common目錄下面創(chuàng)建login.py)
獲取token提供給接口使用,使用@pytest.fixture裝飾器每次執(zhí)行所有用例前執(zhí)行一遍登錄方法獲取到token并返回。
第七步、對(duì)表頭定義全局變量,可以定義在utils目錄下面的operationExcel.py文件中
第八步、封裝用例(tests目錄下面創(chuàng)建test_gwyc_api_all.py)
需要用到@pytest.mark.parametrize()裝飾器進(jìn)行封裝用例,調(diào)用getExceldatas()將讀取出來(lái)的用例存放進(jìn)裝飾器,"data"為別名。如下圖,分別請(qǐng)求頭和參數(shù)做了為空判斷,并將token插入到headers里面,這樣每一個(gè)接口都能使用到登錄返回的token,不用每次都去調(diào)用獲取token。
第九步、利用allure生成測(cè)試報(bào)告。
allure是Pytest的插件包需要下載安裝,并將allure里面的bin目錄所在的路徑配置到PATH環(huán)境變量中就可以直接使用報(bào)告。
將生成的json文件存放到用例所在的目錄下面執(zhí)行完成以后會(huì)在tests目錄下面生成一個(gè)report目錄,下面包含result目錄和html目錄,前者是存放json文件,后者存放讀取后生成的html報(bào)告
第十步、封裝日志方法(log目錄下面創(chuàng)建log.py)
日志在自動(dòng)化測(cè)試中起到的參考作用相對(duì)較小以測(cè)試報(bào)告為準(zhǔn),直接按相應(yīng)規(guī)則配置好直接調(diào)用即可。
原文鏈接:https://blog.csdn.net/myh919/article/details/129124115
- 上一篇:沒(méi)有了
- 下一篇:沒(méi)有了
相關(guān)推薦
- 2022-11-02 Python函數(shù)命名空間,作用域LEGB及Global詳析_python
- 2022-07-11 go語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之前綴樹(shù)Trie_Golang
- 2022-08-10 C#中通過(guò)Command模式實(shí)現(xiàn)Redo/Undo方案_C#教程
- 2022-10-14 element tree懶加載默認(rèn)展開(kāi)指定節(jié)點(diǎn)
- 2023-07-09 Python Django 零基礎(chǔ)從零到一部署服務(wù),Hello Django!全文件夾目錄和核心代碼
- 2022-05-26 Python?pass語(yǔ)句作用和Python?assert斷言函數(shù)的用法_python
- 2022-03-23 Redis的六種底層數(shù)據(jù)結(jié)構(gòu)(小結(jié))_Redis
- 2022-12-12 flutter中如何使用和擴(kuò)展ThemeData實(shí)現(xiàn)詳解_Dart
- 欄目分類
-
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支