pytest自動化測試[面試篇]

pytest是python的測試框架,它提供了許多功能,

測試運行

組織pytest的測試用例代碼:模塊名稱以test_開頭,類名以Test開頭,函數名以test_開頭, 然后用pytest命令即可運行測試用例。

  • 可以在命令行中,用pytest命令運行
  • 也可以在代碼中,用pytest.main()運行

api自動化測試實現

  1. 第一步:通過代碼編寫,最終需要在測試用例,test_開頭的函數中,對接口進行請求,然后斷言
  2. 第二步:pytest運行時,就可以批量調接口api, 使用**–aluredir**參數,可以生成allure的測試報告
  3. 第三步:代碼集成到git和jenkins中,代碼最后在jenkins里面,運行pytest命令,allure的測試報告存在Jenkins的workspace中
    再結合Jenkins的allure插件可以在Jenkins中,查看歷史測試報告。 最后可以設置Jenkins的郵件(釘釘)通知,發送報告。

具體代碼實現

  1. 代碼目錄下有一個libs 目錄(業務層), 一個功能模塊寫成一個py文件。 然后去封裝接口,pytest測試用例方法,再調用libs層封裝方法
  2. a【各個模塊的請求方法、url 集中存在一個yaml文件中】 b【請求參數,預期值,是放到excel中的】
    • 業務層的業務類繼承了BaseApi基類,也是自己封裝的,提供了請求方法--------它可以獲取到對應模塊的接口的 method 和 URL
    • 測試用例的類中,每個測試方法那里,首先使用xrld獲取到excel文件中對應接口的請求參數。使用 @pytest.mark.parametrize把數據傳給測試用例,進行數據驅動。
  3. 初始化和身份校驗
    • pytest它支持寫初始化和清除的代碼,使用@pytest.fixture()裝飾器。參數:scope,參數3:autouse
    • 用例testcase目錄,添加conftest.py, 里面寫了整個項目運行前的初始化,進行登錄。并且返回了token。 頁面類進行實例化時,會傳傳入token,頁面類請求接口時,會自動帶上token。
    • 我在之前公司的實際項目中,也是初始化進行了登錄,然后把token保存到配置中-----方式有所不同。

以上pyest部分未提到的一些用法

  1. 測試用例調用初始化方法:
    1. @pytest.fixture(autouse=True) 、
    2. @pytest.mark.usefixtures(“方法名”) 、
    3. 或直接在test_開頭的函數中,直接把 fixture定義的方法名當成參數傳入。
  2. 裝飾器 @pytest.mark.repeat(2) 可以重復運行測試用例。
  3. pytest-assume庫提供的,pytest.assume() 斷言,如果斷言失敗,會繼續執行,直到全部執行完。
  4. 測試用例方法上,添加@pytest.mark.skipif(True, reason=“跳過原因”),可以跳過用例。 (或 @pytest.mark.skip)
  5. pytest命令運行時,可以添加 -k 參數,指定某個測試用例py模塊,或者測試用例類,或者某個測試用例方法。

allure測試報告

安裝allure-pytest

  1. allure.attach() 可以添加更多的日志、截圖等。
  2. @allure.epic、@allure.feature、@allure.story、@allure.title, 讓用例分層。
  3. 使用with allure.step(),可以添加步驟。 若調用外部方法,也可以使用裝飾器@allure.step(),裝飾在外部方法上

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

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

相關文章

樹莓派急速安裝ubuntu;映射磁盤與儲存磁盤文件;ubuntu映射整個工程;保存系統工作狀態

一、用途 在使用樹莓派上下載ubuntu時,需要一張sd卡,當你需要給這張卡做備份的時候,可以是使用磁盤映射軟件,從而達到備份的目的 同時有一些大佬發布了ubuntu的映射文件,可以直接使用該文件,然后還原他的整…

Python學習第十九天

Django-分頁 后端分頁 Django提供了Paginator類來實現后端分頁。Paginator類可以將一個查詢集(QuerySet)分成多個頁面,每個頁面包含指定數量的對象。 from django.shortcuts import render, redirect, get_object_or_404 from .models impo…

Windows下安裝Git客戶端

① 官網地址:https://git-scm.com/。 ② Git的優勢 大部分操作在本地完成,不需要聯網;完整性保證;盡可能添加數據而不是刪除或修改數據;分支操作非常快捷流暢;與Linux 命令全面兼容。 ③ Git的安裝 從官網…

刷題練習筆記

目錄 1、消失的數字 2、旋轉數組 3、原地移除元素 4、刪除排序數組中的重復項 1、消失的數字 oj:面試題 17.04. 消失的數字 - 力扣(LeetCode) 思路(參考評論區): 利用異或的特性,ret ret …

C或C++中實現數據結構課程中的鏈表、數組、樹和圖案例

1. 雙向鏈表&#xff08;Doubly Linked List&#xff09;-----支持雙向遍歷。 C實現 #include <iostream>struct Node {int data;Node* prev;Node* next; };class DoublyLinkedList { private:Node* head; public:DoublyLinkedList() : head(nullptr) {}// 在鏈表末尾插…

94.HarmonyOS NEXT動畫系統實現教程:深入理解FuncUtils

溫馨提示&#xff1a;本篇博客的詳細代碼已發布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下載運行哦&#xff01; HarmonyOS NEXT動畫系統實現教程&#xff1a;深入理解FuncUtils 文章目錄 HarmonyOS NEXT動畫系統實現教程&#xff1a;深入理解FuncUtils1. 動畫系…

AI日報 - 2025年3月17日

&#x1f31f; 今日概覽&#xff08;60秒速覽&#xff09; ▎&#x1f916; AGI突破 | GPT-o1在卡內基梅隆大學數學考試中獲滿分&#xff0c;展示AI數學能力新高度 成本僅5美分/題&#xff0c;推理速度不到1分鐘 ▎&#x1f4bc; 商業動向 | Figure推出BotQ機器人制造設施&…

Tauri + Vite + SvelteKit + TailwindCSS + DaisyUI 跨平臺開發詳細配置指南(Windows)

Tauri Vite SvelteKit TailwindCSS DaisyUI 跨平臺開發詳細配置指南&#xff08;Windows&#xff09; 本文為博主原創文章&#xff0c;遵循 CC 4.0 BY-SA 版權協議。轉載請注明出處及本聲明 原文鏈接&#xff1a;[你的文章鏈接] &#x1f6e0;? 環境準備 1. 安裝核心工具…

在 macOS 上優化 Vim 用于開發

簡介 這篇指南將帶你通過一系列步驟&#xff0c;如何在 macOS 上優化 Vim&#xff0c;使其具備 代碼補全、語法高亮、代碼格式化、代碼片段管理、目錄樹等功能。此外&#xff0c;我們還會解決在安裝過程中可能遇到的常見錯誤。 1. 安裝必備工具 在開始 Vim 配置之前&#xff…

golang開發支持onlyoffice的token功能

一直都沒去弄token這塊&#xff0c;想著反正docker run的時候將jwt置為false即可。 看了好多文章&#xff0c;感覺可以試試&#xff0c;但是所有文件幾乎都沒說思路。 根據我的理解和成功的調試&#xff0c;思路是&#xff1a; 我們先定義2個概念&#xff0c;一個是文檔下載…

Android wifi的開關Settings值異常分析

Android wifi的開關Settings值異常分析 文章目錄 Android wifi的開關Settings值異常分析一、前言二、異常分析1、adb或者串口獲取Settings的wifi開關值2、代碼獲取wifi開關值3、根據日志分析代碼(1)logcat 對應的wifi開啟日志的代碼①WifiServiceImpl.java② WifiSettingsStore…

C#的委托Action

在 C# 中&#xff0c;Action 是一個預定義的委托類型&#xff0c;它位于 System 命名空間下。下面詳細介紹它的作用和使用方法。 作用 Action 委托的主要作用是封裝一個方法&#xff0c;這個方法沒有返回值&#xff08;即返回類型為 void&#xff09;。它提供了一種簡潔的方式…

Qt MainWindow簡單例子(文本編輯)

使用Qt控件練習文本編輯窗口的創建。 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QLabel> #include <QProgressBar>QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACEclass MainWindow : public Q…

DeepSeek-prompt指令-當DeepSeek答非所問,應該如何準確的表達我們的訴求?

當DeepSeek答非所問&#xff0c;應該如何準確的表達我們的訴求&#xff1f;不同使用場景如何向DeepSeek發問&#xff1f;是否有指令公式&#xff1f; 目錄 1、 扮演專家型指令2、 知識蒸餾型指令3、 顆粒度調節型指令4、 時間軸推演型指令5、 極端測試型6、 逆向思維型指令7、…

Mac中nvm切換node版本失敗,關閉終端再次打開還是之前的node

Mac中使用 nvm 管理 node 版本&#xff0c;在使用指令&#xff1a;nvm use XXX 切換版本之后。 關閉終端&#xff0c;再次打開&#xff0c;輸入 node -v 還是得到之前的 node 版本。 原因&#xff1a; 在這里這個 default 中有個 node 的版本號&#xff0c;使用 nvm use 時&a…

織夢dedecmsV5.7提示信息提示框美化(帶安裝教程和效果展示)

一、效果展示 1、安裝前效果 2、安裝后效果 二、安裝說明 1、安裝測試版本&#xff1a;DedeCMS-V5.7.117-UTF8&#xff1b; 2、必須在修改代碼之前請做好文件備份&#xff0c;以免誤操無法恢復&#xff1b; 3、為了兼容其他版本&#xff0c;請在安裝時&#xff0c;最好將替…

Science Advances 視觸覺傳感機制的交互裝置,可以實時測量來自手不同部位的分布力

近日&#xff0c;由香港科技大學&#xff08;HKUST&#xff09;電子與計算機工程學系申亞京教授領導的研究團隊&#xff0c;提出了一種基于數字通道的觸覺交互系統&#xff0c;可以實時測量來自手不同部位的分布力&#xff0c;有望在醫學評估、體育訓練、機器人和虛擬現實&…

MySQL單表查詢大全【SELECT】

山再高&#xff0c;往上攀&#xff0c;總能登頂&#xff1b;路再長&#xff0c;走下去&#xff0c;定能到達。 Mysql中Select 的用法 ------前言------【SELECT】0.【準備工作】0.1 創建一個庫0.2 庫中創建表0.3 表中加入一些數據 1.【查詢全部】2.【查詢指定列】2.1查詢指定列…

Vue調用子組件init方法時報錯Cannot read properties of undefined (reading ‘init‘)解決方法

調用init方法語句寫在this.$nextTick(() > {});方法里&#xff0c;因為nextTick方法在頁面元素加載完之后調用 this.$nextTick(() > {this.$refs.chartComponent.init();});如果還報錯&#xff1a;Error in nextTick: "TypeError: Cannot read properties of undef…

怎么解決在Mac上每次打開文件夾都會彈出一個新窗口的問題

在Mac上每次打開文件夾都會彈出一個新窗口的問題&#xff0c;可以通過以下方法解決? ?調整Finder設置?&#xff1a; 打開Finder&#xff0c;點擊“Finder”菜單&#xff0c;選擇“偏好設置”。在偏好設置中&#xff0c;選擇“通用”標簽。取消勾選“在標簽頁中打開文件夾”或…