python使用ddt找不到方法_python使用ddt過程中遇到的問題及解決方案【推薦】

前言:

在使用DDT數據驅動+HTMLTestRunner輸出測試報告時遇到過2個問題:

1、生成的測試報告中,用例名稱后有dict() -> new empty dictionary

2、使用ddt生成的用例名稱無法更改

1、用例名稱后有dict() -> new empty dictionary

報告中用例名稱后有dict() -> new empty dictionary,如圖所示:

解決方案:這是ddt高版本1.2.0的bug

1、cmd先通過pip uninstall ddt 卸載ddt,

2、然后再安裝一個低版本的ddt,命令pip install ddt==1.1.3

安裝后再運行程序,結果如下

2、使用ddt生成的用例名稱無法更改

如上圖所示測試用例名稱都是test_api_index,運行結果無法看出用例執行的是哪條數據,翻閱網上的資料找到一個比較好的方法,講解比較詳細,這段內容來自鏈接https://www.cnblogs.com/Simple-Small/p/9230382.html

ddt源碼中有個函數用來生成用例名稱, mk_test_name

它接收兩個參數:name 和 value.

name:為測試用例的名字。即test_api.

value:為測試數據,ddt是處理一組測試數據。而這個value就是這一組數據中的每一個測試數據。

對value的值是有限制的:要么就是單值變量,要么就是元組或者列表并且要求元組和列表中的數據都是單值變量。如("name","port") 、["name","port"]

如果傳進來的測試數據,不符合value的要求,那么測試用例名字為:name_index。

如果傳進來的測試數據,符合value的要求,那么測試用例名字為:name_index_value。如果value為列表或者元組,那么將列表/元組的每個數據依次追加在末尾。

比如傳進來的name值為test_login,value值為["name","port"]。那最終的測試用例名字是:test_login_01_name_port。

如果傳進來的name值為test_login,value值為{"userName":"18500384561", "password":"123456"},那最終的測試用例名字為:test_login_1。 因為它不支持對字典類型的數據處理 。

而我的接口自動化框架中,ddt處理的數據是一列表:列表當中每個數據都為字典。ddt一遍歷整個列表,那傳給value的值剛好是字典。。

所以我得到的測試用例名稱就是:test_login_1,test_login_2,test_login_3

為了讓我的測試報告,呈現的更好。那就改改ddt源碼,讓它能夠適應我的框架。

考慮兩個問題:

1、不同接口的測試用例名字如何來??

2、如何讓ddt支持對字典的處理??

解決方案:

第一個問題:每一個測試用例主動提供一個用例名字,說明你是什么接口的什么場景用例。比如:接口名_場景名。login_success、login_noPasswd、login_wrongPasswd等。

在我的框架當中,每一個測試用例是一個字典。那么我就在字典中添加一個鍵值對,case_name=用例名稱

第二個問題:在ddt中添加對字典的處理,如果字典中有case_name字段,則將字典中鍵名為case_name的值作為測試用例名稱中的value值。

修改后的ddt源碼為(紅色粗體部分為修改的內容):

更改代碼后再執行,結果如下:

總結

以上所述是小編給大家介紹的python使用ddt過程中遇到的問題及解決方案,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對我們網站的支持!

本文標題: python使用ddt過程中遇到的問題及解決方案【推薦】

本文地址: http://www.cppcns.com/jiaoben/python/242996.html

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

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

相關文章

合同的不含稅與稅額怎么算

假設稅率是6% 不含稅金額=總金額/1.06 稅額=不含稅金額0.06 增值稅在線計算器:http://www.ab126.com/goju/7332.html 大小寫轉換:https://link.fobshanghai.com/rmb.htm?t1525225925284 工作日計算:http://www.fy…

Promise進階——如何實現一個Promise庫

概述 從上次更新Promise/A規范后,已經很久沒有更新博客了。之前由于業務需要,完成了一個TypeScript語言的Promise庫。這次我們來和大家一步一步介紹下,我們如何實現一個符合Promise/A規范的Promise庫。 如果對Promise/A規范還不太了解的同學&…

python中isinstance(3、object)_python中isinstance函數判斷各種類型的小細節

1. 基本語法isinstance(object, classinfo)Return true if the object argument is an instance of the classinfo argument, or of a (direct, indirect or virtual)subclass thereof. Also return true if classinfo is a type object (new-style class) and object is an ob…

[前端漫談] 做一個四則計算器

0x000 概述 近期重新開始學習計算機基礎方面的東西,比如計算機組成原理、網絡原理、編譯原理之類的東西,目前正好在學習編譯原理,開始對這一塊的東西感興趣,但是理論的學習有點枯燥無味,決定換種方式,那就是…

程序員筆試面試后上機_hcie面試有哪些要注意的事項?

大家都知道,華為認證hcie考試分為三個部分,分別是筆試、lab實驗和面試。其中,考生討論得最多的就是面試部分,因為面試不同于筆試和lab實驗,自己埋頭答題和操作就行,面試要面對考官,考核的東西非…

【Infragistics教程】在javascript構造函數中創建基本繼承

2019獨角獸企業重金招聘Python工程師標準>>> 【下載Infragistics Ultimate最新版本】 用javascript創建對象有四種方法。具體如下: 對象作為文本構造函數調用模式創建()方法在ES6之后使用類繼承的實現因對象創建方法而異。本文將解…

python爬蟲ssl錯誤_Python爬蟲:Requests的SSLError:certificate verify failed問題解決方案6條...

問題:腳本是用Python寫的,用到開源庫play-scraper,調用其collectionAPI來獲取Google Play的Top App列表。該庫使用了requests作為客戶端來對Google Play進行操作。當腳本執行時,會報如下錯誤:certificate verify faile…

2019年1月3日

數組 字面量創建數組 1. var arr[]; []里邊可以放數字,字符串,true,false,null,undefined,數組([1,2,3]),對象{x:1,y:2} var arr[1,2…

vertex 3.0 與SpringBoot混合開發之初探

SpringBoot是最近幾年比較流行的web應用開發框架,它是微服務的一個開發框架。它的Web服務器內核為Tomcat或Jetty,它們作為Servlet容量來對客戶端的http/https請求進行解析。最近,spring.io又出推出一套新的服務器內核框架,它就是W…

switch芯片和phy芯片的區別_感應式芯片卡CPU卡的FM1208-9和FM1208-10有什么區別,你知道嗎?...

感應式CPU卡是目前芯片卡中安全系統較高的芯片,使用范圍也較為廣泛,但是這款CPU分為FM1208-9和FM1208-10,那你們知道分別代表什么意思呢?他們之間有什么不同呢?CPU白卡FM是什么?首先,我們來說下…

每次登陸都要滑動驗證_湖人隊冠軍成員卡魯索很吃香:每次談判都有N支球隊點名要他...

10月24日NBA直播臺訊:洛杉磯湖人隊助理教練邁克-彭伯西在接受媒體采訪時透露,湖人隊替補控球后衛卡魯索目前在聯盟中很吃香。湖人隊每次進行交易談判時,對方球隊都點名想要卡魯索。彭伯西表示:“每一次我們在休賽期或者交易截止日…

[HAOI2015]按位或

樸素的 f[S]表示S到(1<<n)的期望次數 發現1的個數只增加不減少 所以可以類似拓撲序的圖&#xff0c;然后枚舉子集O(3^n)轉移 沒有優化的余地 另辟蹊徑&#xff1a; 拆開每一位來看 t[i]表示第i位變成1的次數 ansE(max(t[i])) 根據min-max容斥 得到&#xff1a;ans∑E(t[i…

MySQL在DOS指令里面的使用以及增刪改查的使用

本人的第一條博客&#xff0c;選中我的電腦單機右鍵&#xff0c;點開管理&#xff0c;選中服務找到MySQL57.啟動該服務。回退至桌面&#xff0c;按住winR 輸入cmd打開DOS指令的窗口。 在窗口輸入: mysql -h localhost -u root -p 顯示password輸入提示&#xff1a;表示已經…

node+socket.io 實現一個聊天室

我們只做簡單的實現&#xff0c;不接入數據庫&#xff0c;nodejs也不使用express和koa等框架 因此依賴只有兩個&#xff1a; 1、socket.io 2、mime&#xff08;用于獲取靜態資源時獲取文件的mime類型&#xff09; 安裝命令&#xff1a; npm install socket.io mime --save 其他…

安卓應用用戶數據_用戶指標數據應用

一、如何理解數據用戶數據&#xff1a;gender:性別、 birthday:出生日期行為數據&#xff1a;user_id:用戶id、auction_id:購買行為編號、buy_mount:購買數量、day:購買時間商品數據&#xff1a;cat_id:商品種類ID、cat1:商品類別、property:商品屬性二、用戶數據指標1.用戶數據…

三大數據庫數據庫端口號及連接jdbc驅動下載

Jdbc連接三大數據庫&#xff08;mysql sqlserver oracle&#xff09; Mysql:端口號為&#xff1a;3306&#xff08;默認&#xff09; 用java連接mysql數據庫 Try{Class.forName(“com.mysql.jdbc.Driver”); //DatabaseName:需要連接的數據庫名稱 String url”jdbc:mysql://12…

webgis從基礎到開發實踐_開源WebGIS教程系列——11.1 GISLite 的開發背景與設計

地理信息門戶可以幫助人們更容易地發現、訪問和使用地理空間信息&#xff0c; 是地理信息發布、服務和共享的重要環節。許多國家都很重視地理信息門戶的 建設&#xff0c;把它作為國家空間數據基礎設施(spatial data infrastructure&#xff0c;SDI)的重要組成部分。GISLite 是…

Oracle數據庫及在DOS命令下面的簡單操作

在Oracle數據庫注釋用--表明為注釋&#xff0c;但以下用//或--代表解釋;數據庫不怎么區分大小寫&#xff1b; 先說說一些簡單Oracle數據庫操作的語句&#xff1a; 使用語句創建普通用戶&#xff1a; Create user username identified by password; //創建普通用戶 Grant reso…

CSS屬性(display)

1.display屬性 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><title>08display屬性</title><style>.c1 {background-color: red;/*display: none; !* 讓其在頁面上不顯示 *!*//*display: i…

產品發布系統_【產品發布】第3期|閥門遙控系統

更多精彩&#xff0c;請點擊上方藍字關注我們&#xff01;常熟瑞特電氣股份有限公司的閥門遙控系統是一款經典的產品線&#xff0c;包括了全系列的液壓執行器&#xff0c;電液執行器&#xff0c;微型動力單元&#xff0c;液壓動力泵站&#xff0c;液壓電磁閥箱等產品。閥門遙控…