pytest测试实战pdf_Pytest+Allure美化测试报告
今日推薦音樂:我最愛的霉霉
在學習pytest的時候,生成的html報告覺得實在不是很美觀,查到資料有很多測試報告的第三方插件,不僅美觀而且查看測試用例也很方便,那我們一起來學習下吧~0 1
參考案例
要學習一個新技術,最快捷的方法就是去網上找一個demo先練習,然后結合自己的項目練手。于是我找了網上案例并適當修改了下,test_report.py文件如下:
import allure@allure.feature('天氣預報功能')class TestReportStyle(object): @allure.story('查詢上海天氣') def test_search_weather(self): login('小明', '123') with allure.step('輸入城市'): allure.attach('上海') with allure.step('點擊查詢'): pass with allure.step('查詢結果'): allure.attach('查詢成功', '期望結果') allure.attach('查詢失敗', '實際結果')????????????assert?'success'?==?'failed' @allure.story('查詢下周天氣') def test_search_nextweek(self):????????pass@allure.step('用戶登錄')def login(user, pwd): print(user, pwd)Allure用法說明:
@allure.feature('XXX'):?測試用例需求,就相當于告訴報告這個腳本主要功能是做什么的;
@allure.story('XXX'):?測試場景,就相當于一個測試用例;
with allure.step('XX'):?測試步驟;
with?allure.attch('XX'): 測試數據,用戶輸入的測試內容或者截圖等信息;
@allure.step('XX'):?將函數作為測試步驟放入測試報告中;0 2
結合項目實戰
?結合上一篇請求豆瓣電影的小demo,做一個優化。
import yamlimport allureimport pytestimport requestsfrom utils import comm_functiondef get_test_data(filepath): case = [] # 存放測試用例名 requests = [] # 存放http請求對象 validate = [] # 存放斷言 with open(filepath, encoding='utf-8') as f: data = yaml.load(f.read(), Loader=yaml.SafeLoader) case.append(data.get('test')) requests.append(data.get('requests')) validate.append(data.get('validate')) params = zip(case, requests, validate)????????return?case,?paramscases, parameters = comm_function.get_test_data('D:/workFile/test/pytest_demo/data/test_movie.yaml')list_params = list(parameters)print(list_params[0][1])@allure.feature('豆瓣電影列表測試用例') # 測試場景class TestInTheaters(object): @allure.story('查詢電影列表') # 測試用例 @pytest.mark.parametrize('case,http,validate', list(list_params), ids=cases) def test_in_theaters(self, case, http, validate): host = 'http://api.douban.com' with allure.step('請求豆瓣網-上映的電影'): # 測試步驟 allure.attach('start', validate['count']) # 測試數據 allure.attach('count', validate['start']) # 測試數據 res = requests.request(http['method'], url=host+http['path'], headers=http['headers'], params=http['params']) response = res.json() assert response['count'] == validate['count'] assert response['start'] == validate['start'] assert response['title'] == validate['title']代碼運行:
第一步:將測試數據打包
pytest?腳本目錄?--alluredir?存放報告目錄第二步:生成測試報告
allure generate -o 運行結果目錄 存放報告目錄 --clean # 清空查看結果:
遇到的坑:
1、手機端安裝的allure,在pycharm中提示沒有allure命令。
解決辦法:
pycharm的teminal中,pip list查看當前Python下可用的插件,沒有的話安裝下
2、生成過一次的測試報告,再次運行的時候會出現以前的測試情況,明明我clean了啊?
解決辦法:
我打包測試數據的時候,運行多次,那我的測試數據當前會出現重復啦!刪除下重新運行就可以了。
pytest相關文章推薦:
1、初步了解Pytest測試框架
2、pytest+yaml實現接口自動化
總結
以上是生活随笔為你收集整理的pytest测试实战pdf_Pytest+Allure美化测试报告的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: axure web组件下载_Elemen
- 下一篇: java excel 创建按钮_通过单击