ddt源碼修改:HtmlTestRunner報告依據接口名顯示用例名字

做接口測試,使用unittest+ddt+excel ,使用HtmlTetstRunner來生成測試用例。

查看報告的時候 用例名稱都是 test_api_1? ?、test_api_2? 、test_api_3? 的顯示 ,看的不爽,也不明確,如果是test_api_登陸成功? 、?test_api_密碼錯誤??

?

這樣是不是就很好去看這個報告了。不懂代碼的也知道哪條通過,哪條不通過,可以對應去處理 ,而不是去excel數行數

?

======================================分割線==================================

?

查看了ddt源碼,代表用例名稱的函數叫:mk_test_name?

源碼啥樣的就不講了,簡單粗暴直接復制粘貼

?

? ? ? ?ddt源碼如下(紅色粗體部分標識):

復制代碼
 1 def mk_test_name(name, value, index=0):2     """3     Generate a new name for a test case.4  5     It will take the original test name and append an ordinal index and a6     string representation of the value, and convert the result into a valid7     python identifier by replacing extraneous characters with ``_``.8  9     We avoid doing str(value) if dealing with non-trivial values.
10     The problem is possible different names with different runs, e.g.
11     different order of dictionary keys (see PYTHONHASHSEED) or dealing
12     with mock objects.
13     Trivial scalar values are passed as is.
14  
15     A "trivial" value is a plain scalar, or a tuple or list consisting
16     only of trivial values.
17     """
18     
19     # Add zeros before index to keep order
20     index = "{0:0{1}}".format(index + 1, index_len)
21     if not is_trivial(value):
22         return "{0}_{1}".format(name, index)
23     try:
24         value = str(value)
25     except UnicodeEncodeError:
26         # fallback for python2
27         value = value.encode('ascii', 'backslashreplace')
28     test_name = "{0}_{1}_{2}".format(name, index, value)
29     return re.sub(r'\W|^(?=\d)', '_', test_name)
復制代碼

?

? ? ? ??

?

s上面是我的用例模板 ,想顯示哪個就填哪個,看下用例應該懂了吧,不懂的加群問

? ? ? ?2、修改ddt源碼,顯示測試用例名字? ,如果傳入數據為元組或字典。把下列代碼替換源碼紅色區

?

復制代碼
if not is_trivial(value) and type(value) is not dict:
return "{0}_{1}_{2}".format(name, index,value.title)
if type(value) is dict:
try:
value = value["title"]
except:
return "{0}_{1}".format(name.index)
復制代碼

?

?修改完成之后,再次運行接口測試,就可以在測試報告當中看到對應的用例名字啦。。

?

?

轉載于:https://www.cnblogs.com/beile/p/10756827.html

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

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

相關文章

C#操作靜態路由表(增、刪、改、查、遍歷)

C#操作靜態路由表,通過Windows原生API進行操作(效率比通過CMD操作的高很多),支持增、刪、改、查、遍歷使用的是Iphlpapi.dll庫,這個庫里面還有很多很好用的API,有興趣的童鞋自行研究吧,這里只用…

RUNOOB python練習題9 如何在代碼中加入砸瓦魯多

用來練手的python 練習題,原鏈接 : python練習實例9 題干: 暫停一秒輸出 如何在輸出的過程中加入咋瓦魯多,讓輸出更有節奏感,滿足需求呢? import time import numpy as nptable np.arange(0,10,1,dtypeint) for i in range(tab…

服務器與客戶端連接 聊天機器人

服務器運行當顯示 E:\pycharm\python\venv\Scripts\python.exe E:/pycharm/python/協議/機器人聊天服務器.py 開始監聽 accept 說明服務器運行成功 之后運行客戶端,輸入“命令” E:\pycharm\python\venv\Scripts\python.exe E:/pycharm/python/協議/機器人聊天客戶…

Fiddler抓取https設置及其原理

Fiddler抓取https設置及其原理 2018-02-02 目錄 1 HTTPS握手過程 2 Fiddler抓取HTTPS過程 3 Fiddler抓取HTTPS設置參考 數字簽名是什么? 1 HTTPS握手過程 HTTPS 并非是應用層的一種新協議。只是 HTTP 通信接口部分用 SSL (安全套接字層)和…

springboot 返回json字符串格式化問題

在idea中yml文件中添加以下注解就可以格式化json字符串效果 spring: jackson: serialization: indent-output: true 原返回json格式為: {"isSuccess":"ok","code":"0","message":"success",&…

RUNOOB python練習題10

用來練手的python 練習題,原鏈接 : python練習實例9 題干 : 暫停兩秒輸出,并格式化當前時間。 import time,datetimeTIME datetime.datetime.now() print(TIME.strftime("%Y.%m.%d %H-%M-%S")) time.sleep(2) TIME datetime.datetime.now(…

HTTPS連接過程以及中間人攻擊劫持

HTTPS連接過程以及中間人攻擊劫持 目前很多應用都用webview加載H5頁面,如果服務端采用的是可信CA頒發的證書,在 webView.setWebViewClient(webviewClient) 時重載 WebViewClient的onReceivedSslError() ,如果出現證書錯誤,直接調…

Cookie、cookie使用方法

Cookie、cookie使用方法、保存用戶名密碼 //設置Cookie,//cname 獲取時所需參數//username,password 用于記住賬號密碼,如果只要存一個參數 password為空即可//exdays 設置過期參數 設為負數即可刪除(如-1)function setCookie(c…

RUNOOB python練習題12 找素數問題

用來練手的python 練習題,原鏈接 : python練習實例12 題干 : 判斷101-200之間有多少個素數,并輸出所有素數 源代碼如下: import numpy as np bound np.arange(101,201,1) result np.array([]) for k in bound:for i in range(k):# 如果k存在不是1或…

Linux: centOS6.5 RabbitMQ

在大多數大公司,像應用服務器軟件的安裝、部署都是運維的事情,其實自己去嘗試部署一下,也是有收獲的。 有機會正好嘗試了Linux下的rabbitMq安裝過程,做了記錄,希望有用到的人可以做下參考。 安裝環境: Li…

RUNOOB python練習題13 水仙花數

用來練手的python 練習題其十三,原鏈接 : python練習實例13 題干 : 打印出所有的"水仙花數",所謂"水仙花數"是指一個三位數,其各位數字立方和等于該數本身。例如:153是一個"水仙花數",…

OsharpNS輕量級.net core快速開發框架簡明入門教程-代碼生成器的使用

OsharpNS輕量級.net core快速開發框架簡明入門教程 教程目錄 從零開始啟動Osharp 1.1. 使用OsharpNS項目模板創建項目 1.2. 配置數據庫連接串并啟動項目 1.3. OsharpNS.Swagger使用實例(登錄和授權) 1.4. Angular6的前端項目啟動Osharp代碼生成器的使用 2.1 生成器的使用 2.2 生…

RUNOOB python練習題 14

用來練手的python 練習題其十四,原鏈接 : python練習實例14 題干 : 將一個正整數分解質因數。例如:輸入90,打印出90233*5。 拿到題目,我們就可以看出,首先我們需要一個函數來判斷某一正整數是否為質數,然后還需要一個…

關于作者

北京某公司滲透工程師 Web滲透、PHP/Java代碼審計、安全研究 想換一份工作,求推薦。轉載于:https://www.cnblogs.com/dgjnszf/p/10779097.html

centos7通過yum安裝JDK1.8

安裝之前先檢查一下系統有沒有自帶open-jdk 命令: rpm -qa |grep java rpm -qa |grep jdk rpm -qa |grep gcj 如果沒有輸入信息表示沒有安裝。 如果安裝可以使用rpm -qa | grep java | xargs rpm -e --nodeps 批量卸載所有帶有Java的文件 這句命令的關鍵字是j…

一個電腦的重裝到java開發環境安裝配置的全過程

剛拿到一臺別人用過的電腦。看著c盤爆滿,而且用了還是windows7操作系統,強迫癥發作馬上就準備重裝系統。 之前換固態使用wepe制作U盤啟動盤裝系統的步驟和過程全部忘記的,賊尷尬。 同事都看不過眼了 使用UltraISO這個軟件幫我做了U盤啟動盤 …

RUNOOB python練習題17

用來練手的python 練習題其十三,原鏈接 : python練習實例17 題干 : 輸入一行字符,分別統計出其中英文字母、空格、數字和其它字符的個數 這個例題讓我回憶起了遠古的記憶,python str類的 isalpha,isspace,isdigit方法。這些方法通過比較ASC…

Centos7下使用ELK(Elasticsearch + Logstash + Kibana)搭建日志集中分析平臺

Centos7下使用ELK(Elasticsearch Logstash Kibana)搭建日志集中分析平臺 日志監控和分析在保障業務穩定運行時,起到了很重要的作用,不過一般情況下日志都分散在各個生產服務器,且開發人員無法登陸生產服務器&#xf…

疊數的加法與字符串 RUNOOB python練習題 18

用來練手的python 練習題其十八,原鏈接 : python練習實例18 題干: 求saaaaaaaaaaaa…a的值,其中a是一個數字。例如222222222222222(此時共有5個數相加),幾個數相加由鍵盤控制 這種類型的疊數相加,讓我不禁聯想到了python中&…

wget在linux中安裝出現錯誤解決辦法

在使用wget命令報錯 certificate common name xxx doesnt match requestde host name,我們一般的解決辦法是查找下載地址,但是有時候更換地址也會發生錯誤, wget http://www.monkey.org/~provos/libevent-1.2.tar.gz 報如下錯: er…