百度搜索實(shí)例
一、代碼結(jié)構(gòu)
本案例來(lái)自于霍格沃茲測(cè)試學(xué)院《高薪測(cè)試成長(zhǎng)圖譜》。data.yml為數(shù)據(jù)管理文件,test_baidudemo.py為測(cè)試用例文件,文件結(jié)構(gòu)如下:
![](/d/20211017/70a75c2f7ddaaa65c92c9dad738eee4e.gif)
創(chuàng)建data/data.yml文件,代碼如下
- allure
- pytest
- unittest
創(chuàng)建test_baidudemo.py,代碼如下
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import allure
import pytest
import yaml
from selenium import webdriver
import time
@allure.testcase("https://www.baidu.com")
@allure.feature("百度搜索")
@pytest.mark.parametrize('test_data1',yaml.safe_load(open("data/data.yml")))
def test_steps_demo(test_data1):
with allure.step("打開百度網(wǎng)頁(yè)"):
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.maximize_window()
with allure.step(f"輸入搜索詞:{test_data1}"):
driver.find_element_by_id("kw").send_keys(test_data1)
time.sleep(2)
driver.find_element_by_id("su").click()
time.sleep(2)
with allure.step("保存圖片"):
driver.save_screenshot("./result/b.png")
allure.attach.file("./result/b.png",attachment_type=allure.attachment_type.PNG)
with allure.step("關(guān)閉瀏覽器"):
driver.quit()
二、運(yùn)行結(jié)果
進(jìn)入項(xiàng)目目錄下,使用以下語(yǔ)句運(yùn)行
pytest test_baidudemo.py -s -q --alluredir=./result/ #執(zhí)行測(cè)試用例,并生成測(cè)試報(bào)告數(shù)據(jù)在當(dāng)前文件夾result文件下
allure serve ./result/ #啟動(dòng)allure,并使用result下的測(cè)試結(jié)果數(shù)據(jù)生成測(cè)試報(bào)告
生成的報(bào)告如下圖所示:
![](/d/20211017/ff9baa8d587929146e5cc2a48152fcd1.gif)
![](/d/20211017/209f751f8c9482bba310b442fc0ea5b0.gif)
問(wèn)題解決
運(yùn)行時(shí)總是報(bào)錯(cuò)當(dāng)前chromedriver只支持chrome78,實(shí)際上已經(jīng)更新了chromedriver83,未找到原因解決,最終在代碼里加上chromedriver絕對(duì)路徑。將driver = webdriver.Chrome()修改為driver = webdriver.Chrome(‘C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe')。
with allure.step(f"輸入搜索詞:{test_data1}"):,在python3.6.8版本上運(yùn)行該語(yǔ)句總是報(bào)語(yǔ)法錯(cuò)誤,修改為 with allure.step(“輸入搜索詞:”+test_data1):,可以正常運(yùn)行并輸出。
allure簡(jiǎn)介與使用
allure簡(jiǎn)介
Allure是一款輕量級(jí)并且非常靈活的開源測(cè)試報(bào)告框架。 它支持絕大多數(shù)測(cè)試框架, 例如TestNG、Pytest、JUint等。它簡(jiǎn)單易用,易于集成。
allure如何生成測(cè)試報(bào)告
運(yùn)行的時(shí)候加上 pytest.main ( ‘–alluredir', ‘report/result', ‘TestDemo01.py']) 會(huì)在當(dāng)前文件夾創(chuàng)建一個(gè)report文件夾,在report文件夾下創(chuàng)建result
![](/d/20211017/09251fc3209e0f25171152c7f23b39ce.gif)
![](/d/20211017/6a505714d223dd448719b6d04ad26389.gif)
生成html測(cè)試報(bào)告
因?yàn)樯傻臏y(cè)試報(bào)告是json的,不好看,所有用這個(gè)命令生成一個(gè)好看的HTML測(cè)試報(bào)告
![](/d/20211017/ee4b873e544366e825920aa02a16fe2f.gif)
運(yùn)行之后,就會(huì)生成一個(gè)HTML文件夾,點(diǎn)開index.html這個(gè)就是我們的測(cè)試報(bào)告啦
![](/d/20211017/98af73081dc4b6039daf8cdafd5c5561.gif)
![](/d/20211017/5c2e31047f559a17534216be094be472.gif)
allure幾個(gè)常用特性(測(cè)試報(bào)告中展示)
@allure.feature (用于描述被測(cè)試產(chǎn)品需求)
![](/d/20211017/9603ba939fb5e82632f1dd6ee28e00c7.gif)
@allure.story (用于描述feature的用戶場(chǎng)景,即測(cè)試需求)
![](/d/20211017/bf7269dea1ab26c8c54ee3fdd0edb26d.gif)
with allure.step() (用于描述測(cè)試步驟,將會(huì)輸出到報(bào)告中)
![](/d/20211017/02d8f1ecdd44b0b1f988bcde67f91c80.gif)
allure.attach (用于向測(cè)試報(bào)告中輸入一些附加的信息,通常是一些測(cè)試數(shù)據(jù),截圖等)
![](/d/20211017/3ed3b4d511afd3b5851c07c86adde576.gif)
pytest斷言設(shè)置并結(jié)合allure生成測(cè)試報(bào)告
![](/d/20211017/ba46f299768621f42cdef2230bc4035b.gif)
測(cè)試報(bào)告
![](/d/20211017/bafac9e66b9ac772c2733ab6adba47fe.gif)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:- python自動(dòng)化之如何利用allure生成測(cè)試報(bào)告
- 詳解用Pytest+Allure生成漂亮的HTML圖形化測(cè)試報(bào)告
- Pytest allure 命令行參數(shù)的使用