修改ddt測試用例名稱


 

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

它接收兩個參數:name 和 valu

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

 處理方法:

1. 在ddt中添加對字典dict的處理,如果字典中有case_name字段,則將字典中鍵名為case_name的值作為測試用例名稱中的value值。

2. 在ddt中添加對列表list的處理,則將列表中某一列的值作為測試用例名稱中的value值。

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

 

修改后輸出測試報告用例名:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM