python接口自動化pytest+request+allure

自己自學接口自動化過程遇到的問題及解決方法記錄

首先是一個簡單的請求

import requests#這是一個簡單是get請求
def test_get():geturl = 'https://so.csdn.net/api/v1/relevant-search?query=pycharm%E5%AE%89%E8%A3%85requests%E5%BA%93&platform=pc'getr = requests.get(url=geturl)print(getr.text)assert getr.status_code == 200#這是一個post請求
def test_post():posturl = 'https://so.csdn.net/api/v1/get_landing_word'postjson={'url':'https://blog.csdn.net/qq_43779149/article/details/122488766'}postr=requests.post(url=posturl,json=postjson)print(postr.text)list_postr = list(postr)# assert list_postr[1] == 200assert postr.status_code == 200

利用request庫發送請求

然后用pytest的命名規范寫了上述代碼,后面我需要用allure生成報告

問題一:allure是什么

? ? ? ? allure是第三方的命令行工具,無法直接通過python來安裝,需要去官網下載

問題二:allure-pytest是什么

? ? ? ? allure-pytest是Python 插件,用于生成測試數據,可以直接用pip來安裝

遇到的問題:

? ? ? ?一:官網下載的allure沒用bin目錄,無法用命令行去執行,最后還是在csdn上的某個博客上找到了個人分享的allure壓縮包

分享者是:@旺仔牛奶

分享鏈接是:pycharm中Allure的安裝及其環境配置_pycharm安裝allure-CSDN博客

????????鏈接:https://pan.baidu.com/s/1tMWm5p4sYXgcj5AP4GeRbg?pwd=284i?
????????提取碼:284i?

下載好allure后,需要找到bin目錄,并將其配置環境變量

????????點擊電腦,選擇屬性—>高級系統設置—>環境變量設置—>系統變量—>Path環境,然后

????????選中Path點擊編輯,然后選擇新建,然后將復制的Allure的bin目錄的路徑粘貼即可,然后點擊確定

上述兩個下載好之后進行驗證

驗證命令:pip show allure-pytest

驗證命令:allure --version

之后重啟PyCharm即可使用allure

之后使用代碼?

    # 運行要進行測試的py文件,生成測試數據到當前目錄下的allure-results文件夾pytest.main(["-s", "alluredpytest.py", "--alluredir=allure-results"])# 執行allure服務,將allure-results文件夾的測試數據轉html,并自動打開網頁subprocess.run("allure serve allure-results", shell=True)# 服務處于開啟狀態,關閉服務則鏈接失效,不可查看報告

allure裝飾器的應用?

@allure.feature("CSDN接口測試")  # 模塊/功能分類
class TestCSDNAPI: # 測試類@allure.story("GET接口測試")  # 子功能/用戶場景分類@allure.title("搜索相關文章接口")  # 用例標題(默認是函數名,可自定義)@allure.description("驗證GET請求返回狀態碼200")  # 用例描述

?將上面的請求加上裝飾器的完整代碼如下

import allure
import requests@allure.feature("CSDN接口測試")  # 模塊/功能分類
class TestCSDNAPI:@allure.story("GET接口測試")  # 子功能/用戶場景分類@allure.title("搜索相關文章接口")  # 用例標題(默認是函數名,可自定義)@allure.description("驗證GET請求返回狀態碼200")  # 用例描述def test_get(self):with allure.step("步驟1:發送GET請求"):  # 記錄詳細步驟geturl = 'https://so.csdn.net/api/v1/relevant-search?query=pycharm%E5%AE%89%E8%A3%85requests%E5%BA%93&platform=pc'getr = requests.get(url=geturl)allure.attach(f"請求URL: {geturl}", "請求詳情")  # 附加請求信息到報告allure.attach(f"響應狀態碼: {getr.status_code}", "響應詳情")with allure.step("步驟2:驗證狀態碼"):print(getr.text)assert getr.status_code == 200, "狀態碼非200"  # 斷言失敗時顯示自定義錯誤信息@allure.story("POST接口測試")@allure.title("獲取落地頁關鍵詞接口")def test_post(self):posturl = 'https://so.csdn.net/api/v1/get_landing_word'postjson = {'url': 'https://blog.csdn.net/qq_43779149/article/details/122488766'}with allure.step("發送POST請求"):postr = requests.post(url=posturl, json=postjson)# 將請求和響應數據附加到Allure報告allure.attach(str(postjson), "請求Body", allure.attachment_type.JSON)allure.attach(postr.text, "響應Body", allure.attachment_type.JSON)with allure.step("驗證狀態碼"):# 移除有問題的 list_postr = list(postr)(Response對象不能直接轉為list)assert postr.status_code == 200, f"狀態碼錯誤,實際為{postr.status_code}"

運行allure服務,并且自動打開測試報告頁面,查看詳細報告

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/73186.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/73186.shtml
英文地址,請注明出處:http://en.pswp.cn/web/73186.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CompletableFuture的使用

CompletableFuture 是 Java 8 引入的異步編程工具&#xff0c;通過鏈式調用和非阻塞操作簡化多線程任務編排。 創建異步任務 1.帶返回值的任務 CompletableFuture<String> future CompletableFuture.supplyAsync(() -> "Hello");2. ?無返回值的任務 使…

GLB文件介紹

GLB文件是由支持glTF&#xff08;GL Transmission Format&#xff09;標準的軟件或工具生成的。glTF是一種開放的3D模型傳輸格式&#xff0c;而GLB是其二進制版本&#xff0c;通常用于嵌入紋理和模型數據。以下是常見的生成GLB文件的軟件和工具&#xff1a; 1. 3D建模軟件 ? …

計算機網絡的分類及其性能指標

一. 計算機網絡的分類 1. 按分布范圍分類 廣域網&#xff08;WAN&#xff09; 也稱遠程網。廣域網提供長距離通信&#xff0c;通常是幾十千米到幾千千米的區域&#xff0c;比如跨國通信。連接廣域網的各結點交換機的鏈路一般是高速鏈路&#xff0c;具有較大的通信容量城域網&…

gralloc usage flags

下面這些示例主要說明了 gralloc usage flags 在圖像處理和多媒體應用中如何影響性能和正確性。讓我們逐個詳細分析每個問題的 根因 和 修復方案&#xff0c;并深入解析 gralloc 標志對 緩存管理 和 數據流 的影響。 ? Example 1: 長曝光快照耗時異常 &#x1f4cc; 問題描述…

關于kafka的一些知識總結

Kafka 1. 基本知識 1.1 前置知識 topic表示一個類型/業務的數據的組為方便擴展&#xff0c;提高吞吐率&#xff0c;一個topic分為多個partition。配合分區的設計&#xff0c;提出消費者組的概念&#xff0c;每個消費者并行消費&#xff0c;同時&#xff0c;一個分區的數據&a…

深入理解traceroute命令及其原理

traceroute 是一個網絡診斷工具&#xff08;Windows上叫tracert&#xff09;&#xff0c;用于顯示數據包從本地主機到遠程主機經過的路由&#xff08;跳數&#xff09;。它可以幫助您了解數據包在網絡中的傳輸路徑&#xff0c;以及每跳的延遲情況。這對于網絡故障排除、分析網絡…

Spring 6: 3容器-Ioc

3、容器&#xff1a;IoC IoC 是 Inversion of Control 的簡寫&#xff0c;譯為“控制反轉”&#xff0c;它不是一門技術&#xff0c;而是一種設計思想&#xff0c;是一個重要的面向對象編程法則&#xff0c;能夠指導我們如何設計出松耦合、更優良的程序。 Spring 通過 IoC 容…

git推送代碼相關學習——(一)

推薦去閱讀一下廖老師的git相關的教程https://liaoxuefeng.com/books/git/introduction/index.html 這個系列就來學習一下git操作。 第一步&#xff0c;新建項目 去github中新建一個項目&#xff0c;然后依據項目來進行本地的開發工作。 第二步&#xff0c;拉取項目 git c…

2025年滲透測試面試題總結-某深信服-深藍攻防實驗室(題目+回答)

網絡安全領域各種資源&#xff0c;學習文檔&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各種好玩的項目及好用的工具&#xff0c;歡迎關注。 目錄 深信服-深藍攻防實驗室 一、內網攻擊核心思路&#xff08;2025版&#xff09; 1. 攻擊階段分層 2. 最…

JAVA學習*Object類

Object類 Object類是所有類的父類 類中有一些方法&#xff08;都需要掌握&#xff09; toString()方法 在學習類的對象的時候有介紹過了&#xff0c;當我們重新給此方法就會打印類與對象的信息 equals()方法 在Java中的比較&#xff0c; 如果左右兩側是基本類型變量&#…

《Operating System Concepts》閱讀筆記:p471-p472

《Operating System Concepts》學習第 37 天&#xff0c;p471-p472 總結&#xff0c;總計 2 頁。 一、技術總結 1.NAS (1)定義 network-attached storage (NAS)&#xff1a;Storage accessed from a computer over a network. 雖然平時經常看到 NAS 這個名稱&#xff0c;之…

gonet開源游戲服務器環境配置

1.mysql搭建 搜索mysql-server apt安裝包名 sudo apt search mysql-server 安裝mysql-server sudo apt-get install mysql-server 安裝完成后會&#xff0c;啟動mysql服務及創建系統服務 查看服務狀態 systemctl status mysql.service 使用超級權限登陸mysql sudo mysql 授…

HarmonyOS NEXT(九) :圖形渲染體系

HarmonyOS NEXT&#xff08;九&#xff09; &#xff1a;圖形渲染體系 前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;可以分享一下給大家。點擊跳轉到網站。 https://www.captainbed.cn/ccc 文章目錄 HarmonyOS NEXT&#xff0…

網絡安全威脅與防護措施(上)

1. SQL注入&#xff08;SQL Injection&#xff09; SQL注入是一種常見的安全漏洞&#xff0c;攻擊者通過在用戶輸入中插入惡意的SQL代碼&#xff0c;從而篡改、操控數據庫&#xff0c;執行未授權的數據庫操作&#xff0c;如查詢、修改、刪除數據&#xff0c;甚至獲取系統控制權…

3.22模擬面試

前端模擬面試&#xff08;1 年經驗&#xff09; 面試時長&#xff1a;40-60 分鐘 面試難度&#xff1a;初中級 技術棧&#xff1a;Vue 3、TypeScript、微前端&#xff08;qiankun&#xff09;、Webpack/Rspack、Ant Design、組件庫遷移 一、基礎知識 HTML & CSS 介紹一下…

kotlin 函數引用

引言 先確認一下&#xff0c;什么叫做引用 Object obj new Object() //這里的obj就是一個強引用 再確認一個結論&#xff1a; lambda 屬于函數類型對象 。 fun methodResponseResult(msg: String , respo:(Int, String)->Unit){}fun methodRespoResunt(type: Int ,msg: S…

微前端qiankun框架的使用

文章描述 隨著工作時間的增加&#xff0c;發現公司的項目逐漸多了起來&#xff0c;有一個項目比較龐大&#xff0c;是需要集成多個子系統而形成的大項目。其中便是使用微前端的概念qiankun框架來集成其他多個子項目的。接下來&#xff0c;一起來看一下qiankun框架的具體使用方…

基于CVX優化器的儲能電池調峰調頻算法matlab仿真

目錄 1.課題概述 2.系統仿真結果 3.核心程序與模型 4.系統原理簡介 4.1 原理概述 4.2 CVX工具箱概述 5.完整工程文件 1.課題概述 基于CVX優化器的儲能電池調峰調頻算法matlab仿真。CVX 是一種用于求解凸優化問題的強大工具。凸優化問題具有良好的數學性質&#xff0c;能…

回歸——數學公式推導全過程

文章目錄 一、案例引入 二、如何求出正確參數 1. 最速下降法 1&#xff09;多項式回歸 2&#xff09;多重回歸 2. 隨機梯度下降法 一、案例引入 以Web廣告和點擊量的關系為例來學習回歸&#xff0c;假設投入的廣告費和點擊量呈現下圖對應關系。 思考&#xff1a;如果花了…

微服務中的服務發現

微服務中的服務發現 什么是服務發現 服務發現是微服務架構中的關鍵機制&#xff0c;用于確定各個微服務的地址。例如&#xff0c;在一個 API Server 服務中&#xff0c;我們可能需要調用 User 服務來處理用戶注冊、登錄和信息查詢&#xff0c;也可能需要 Product 服務來獲取商…