前言:請自行安裝好yaml/allure/jre,并且配置好環境變數
HTMLTestRunner.py已修改,支持python3.9,請把它放在你的python\Lib目錄下
HTMLTestRunner.py下載
1.專案檔案結構目錄

- allureReport:用來存放allure生成的測驗報告
- HTMLTestRunnerReport:用來存放HTMLTestRunner生成的測驗報告
- common(可不用):用來存放封裝好的方法,比如連接資料庫的方法、發送登陸協議的方法等等
- config(可不用):組態檔
- data(可不用):測驗用的資料檔案,可以是csv、yaml、txt、xlrd等格式
- testcase:存放各種測驗用例
※檔案可不用的原因是新手可以先嘗試寫簡單的測驗用例,包括資料之類的都可以直接寫在case里,但是測驗用例如果不用韌體封裝的話維護性較低,后期再慢慢改進吧,
2.測驗用例的固定要求
- .py檔案必須以test_開頭或者_test結尾
- 測驗類必須以Test開頭并且不能帶有__init__方法
- 測驗函式(測驗用例)必須以test_開頭
舉個例子:

class TestItem(): #測驗類可以是這樣
class Test_Item(): #也可以是這樣
def test_login(self, *args): #測驗用例長這樣
'''用例內容'''
3.pytest測驗用例案例
class TestItem:
'''↑↑↑↑↑↑↑↑↑這是個測驗類'''
@staticmethod
def setup_class(self): #前置,不明白自己去百度
print('用例開始執行')
@staticmethod
def teardown_class(self): #后置,同上
print('用例執行結束')
def test_1(self): #測驗用例1
print('nice啊兄die')
def test_2(self): #測驗用例2
x = 1
y = 9
assert x == y
執行結果,用例1通過并且列印了內容;用例2未通過,因為1≠9,

4.Yaml的作用?yaml如何呼叫?
- 作用:假設你要通過腳本進行賬號登陸,那么你會寫一個登陸腳本,然后在腳本內寫入要登陸的賬號、賬號密碼,但是這個腳本只能登陸一個賬號,如果要登陸1000個賬號豈不是要寫1000個腳本?這里就可以讓腳本訪問yaml資料,通過傳入不同的賬號資訊引數,進行不同賬號的登陸,
- 使用:首先要創建一個.yaml檔案

內容我隨便寫了兩組資料,
資料1:
s:
username: sjx001
password: 1234567
j:
username: sjx002
password: 1234567
x:
username: sjx002
password: 1234567
資料2:
QQ:
-
username: sjx001
password: 1234567
-
username: sjx002
password: 1234567
weixin:
-
username: sjx003
password: 1234567
-
username: sjx004
password: 1234567
weibo:
-
username: sjx005
password: 1234567
-
username: sjx006
password: 1234567
這個資料讓python讀取出來的樣子是嵌套的字典,我們可以通過鍵去呼叫,
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
{‘s’: {‘username’: ‘sjx001’, ‘password’: 1234567}, ‘j’: {‘username’: ‘sjx002’, ‘password’: 1234567}, ‘x’: {‘username’: ‘sjx002’, ‘password’: 1234567}}
演示一下
1.如果想使用所有的賬號資訊,資料1演示,
直接使用ddt.file_data,注意使用DDT的話測驗類需要繼承unittest,

三組資料分別被列印了

2.如果只想登陸某組資料,資料2演示,
使用yaml中的鍵來指定,

結果是只列印了weibo下面的賬號資訊,OK

5.HTMLTestRunner生成測驗報告
原始碼及注釋都給你打出來,自己去理解,
import time
import os
import unittest
from HTMLTestRunner import HTMLTestRunner
def getAllCases():
'''獲取test_dir目錄下所有以test_開頭的測驗用例并放入容器Testsuite中'''
test_dir = r'D:\Test\testcase'
Testsuite = unittest.defaultTestLoader.discover(test_dir, pattern='test_*.py')
return Testsuite
def Runmain():
'''在指定的路徑下生成html格式的測驗報告'''
TestReport_dir = 'D:\Test\HTMLTestRunnerReport'
fp = open(os.path.join(TestReport_dir, time.strftime("%Y-%m-%d %H時%M分%S秒")+'測驗報告.html'), 'wb')
runner = HTMLTestRunner(stream=fp, title='sjx的自動化測驗報告', description='這是個案例')
runner.run(getAllCases())
if __name__ == '__main__':
Runmain()
生成的測驗報告長這樣!!!

6.allure生成測驗報告
在配置好java環境且安裝好allure的前提下,請你完成你的測驗用例,并且規范點放在自己的測驗專案里!
然后在終端輸入pytest --alluredir +生成報告的目錄,
pytest會開始執行你的測驗用例,并且通過allure生成測驗報告,


然后輸入allure serve +生成報告的目錄 打開測驗報告,完事

兩種測驗報告根據自己的口味進行選擇,達到這一步以后,可以根據實際需求去結合jenkins更進一步完善自動化程序,如果想在linux系統下執行腳本的話配置也是一樣的,前提是你能夠配置好linux環境,
以上就簡單得展示了一遍測驗報告的生成,
持續更新ing!當個快樂的測驗工程師,

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/232051.html
標籤:python
