Unittest框架的基本結構如圖:

代碼設計思路重點講解:
1、通過讀取Excel文檔中的內(nèi)容,來實現(xiàn)參數(shù)的存儲。通過配置文件,可以方便修改對應的內(nèi)容。

2、把接口的參數(shù)存在Excel中,通過json.loads將參數(shù)變?yōu)閖son格式,其余公共參數(shù)可通過values.update()來加入。

3、對于我們常用的token參數(shù),通過傳入uid,在通過數(shù)據(jù)庫查詢,進行替換參數(shù)。
4、對于返回值的校驗,通過寫在Excel對應行的結果上,因為主要用來回歸下接口是否正常訪問,故代碼只做了code校驗

然這樣設計之后,我們可以通Excel添加對應接口,參數(shù)和結果,如圖:

而測試結果如圖顯示:

遇到問題記錄如下:
問題:ImportError: No module named flask 解決辦法:
1、Python3可以在命令提示符中輸入:pip3 install flask
2、Python2直接輸入:pip install flask
問題:ImportError: No module named 'xlrd' 解決辦法:
1、Python3可以在命令提示符中輸入:pip3 install xlrd
2、Python2直接輸入:pip install xlrd
問題:ImportError: No module named requests 解決辦法:
1、Python3可以在命令提示符中輸入:pip3 install requests
2、Python2直接輸入:pip install requests
問題:common中的xx.py調(diào)用文件夾外面的xx.py文件,解決方法:
import sys
sys.path.append('..')
--------------這段代碼放在import xx.py之前--------------
問題:在打印log的時候會提示錯誤:UnicodeDecodeError:
'ascii' codec can't decode byte 0xe2 in position 30,解決方法:
import sys
reload(sys)
sys.setdefaultencoding('utf8')
--------------這段代碼放在logging的頭部--------------
問題:在執(zhí)行腳本的時候提示錯誤:'testUserLogin' object has
no attribute 'case_name':
原因是在 HTMLTestRunner.HTMLTestRunner中運行時description = cls_results[0][1]中多了.case_name,只要刪掉就好了
問題:在執(zhí)行腳本的時候提示錯誤:TypeError: unicode argument
expected, got 'str':

解決方法:HTMLTestRunner中將對應的2.7版本改成from io import BytesIO,然后把下方的self.outputBuffer = io.BytesIO()
問題:在執(zhí)行腳本的時候提示錯誤:ImportError: No modulenamed parse
python 2.7版本需要用urlparse代替parse。故腳本修改如下
data1 = dict(urlparse.parse_qs(urlparse.urlparse(new_url).query))
問題:在執(zhí)行腳本的時候提示錯誤:ImportError: No modulenamed paramunittest
1、Python3可以在命令提示符中輸入:pip3 install paramunittest
2、Python2直接輸入:pip install paramunittest
在45機子上jenkins配置對應的執(zhí)行內(nèi)容
一、45機子上需要配置tomcat服務
二、安裝工程所用到的對應python插件
三、上傳對應的工程,并且在jenkins中配置對應工程
四、找到tomcat中/conf/server.xml文檔,在最好一行插入對應訪問地址的對應路徑配置。如:
則頁面訪問路徑如:(用于查看對應接口報告)
五、啟動tomcat,使鏈接可以訪問
代碼路徑:https://github.com/lunacai/MyUnittest/tree/master/chushouInterTest