來自APP Android端自動化測試初學者的筆記验夯,寫的不對的地方大家多多指教哦
之前發(fā)布的python+appium自動化測試-pytest+allure測試報告(一)這篇文章由于部分內(nèi)容有誤逞力,修改并補充后現(xiàn)在重新發(fā)布
一收夸、Allure安裝
1、pytest和allure插件安裝
pip install allure-pytest
pip install pytest
2共螺、Allure幫助文檔
<https://docs.qameta.io/allure/#_about>
3橱鹏、Allure安裝
a.scoop install allure b.使用安裝包安裝
- allure2下載下來是一個zip的壓縮包,我們要解壓至自己的文件目錄下(可解壓放至項目的測試用例下或python安裝目錄下)糠悼,自己可找到文件即可届榄。
- 打開allure2目錄,找到bin目錄倔喂,復(fù)制bin文件目錄铝条, 然后進行環(huán)境變量的配置,設(shè)置環(huán)境變量的目的就是讓系統(tǒng)無論在哪個目錄下都可以運行allure2席噩。
- 環(huán)境變量設(shè)置:(桌面——我的電腦——右鍵屬性——高級系統(tǒng)配置——環(huán)境變量——系統(tǒng)變量——Path——編輯環(huán)境變量——把我們上面復(fù)制的目錄路徑新增至環(huán)境變量中即可)
- 配置好后班缰,打開cmd終端,輸入allure悼枢,出現(xiàn)以下幫助文檔埠忘,就說明配置成功了。
若后續(xù)有新版本馒索,建議使用最新的版本
二莹妒、生成json格式的測試報告
運行環(huán)境:
- 設(shè)備:U4AIUKFAL7W4MJLR
- 測試app:微博APP(V10.12.0)Andriod版
- 測試功能:賬號密碼登錄
方法一:在終端(terminal),生成json格式測試報告
終端(terminal)輸入以下內(nèi)容绰上,運行
pytest 運行的py文件 --alluredir=測試報告存放地址
例如:
pytest add_weibo_test.py --alluredir=../report/json
運行測試用例旨怠,在測試報告存放位置會生成一份或多份json或xml格式的測試報告
方法二:在測試用例配置Additional Arguments,生成json格式測試報告
1.選擇需要運行的測試用例蜈块,右鍵點擊Create Run Configuration:"測試用例文件名“
2.進入后在Additional Arguments輸入:- -alluredir=生成的json格式測試報告存放的位置
3.設(shè)置完后鉴腻,點擊APPLY→OK,在測試函數(shù)中運行測試文件
運行后在測試報告存放位置會生成一份或多份json或xml格式的測試報告
三百揭、測試報告由json格式轉(zhuǎn)換為html格式
在終端(terminal)轉(zhuǎn)換
1.測試用例運行完成生成json格式的測試報告后爽哎,打開terminal,輸入命令:
allure generate ./report/ -o ./report/html --clean
./report/:表示執(zhí)行需要轉(zhuǎn)換的文件所在的位置器一,需要轉(zhuǎn)換的文件在report文件夾中
./report/html:表示轉(zhuǎn)換成功的html文件存放的位置课锌,即存放在report下的html文件夾中
--clean:表示清除之前的測試報告,因為重復(fù)生成相同的測試報告會報錯
注意:在terminal可以通過cd返回上一級或進入其它文件
2.執(zhí)行完成后盹舞,在report文件夾下會生成一個html文件产镐,在html目錄下會生成index.html文件隘庄,即為可視化報告,如下圖所示
3.打開html文件癣亚,右鍵點擊index.html文件丑掺,選擇open in Broswer,選擇Chrome瀏覽器述雾,如下圖
4.谷歌瀏覽器打開后的測試報告圖片呈現(xiàn)為下圖:
四街州、Allure相關(guān)注解
1.@allure.feature:用于描述被測試產(chǎn)品需求
2.@allure.story:用于描述feature的用戶場景,即測試需求玻孟,與feature是父子關(guān)系
3.@allure.title:用戶描述測試用例的標題唆缴,不設(shè)置默認為用例名稱
4.@allure.description:用于對測試用例的一些附加描述
5.@allure.step:用于將一些通用的函數(shù)作為測試步驟輸出到報告,調(diào)用此函數(shù)的地方會向報告中輸出步驟
- with allure.step:用于描述測試步驟黍翎,將會輸出到報告中
- allure.attach:用于向測試報告中輸入一些附加的信息面徽,通常是一些測試數(shù)據(jù),截圖等
代碼如下:
# 手機賬號密碼登錄測試用例
import allure
import pytest
from common.init import AppStart
@allure.feature("這是測試feature")
class TestAccountPwd:
def setup_class(self):
self.account_login_page = AppStart.start().enter_account_login()
@allure.story("story_one")
@allure.title("title_one")
def test_one(self):
with allure.step("step--輸入賬號"):
allure.attach("123123231321313", "賬號")
account = "123123231321313"
with allure.step("step--輸入密碼"):
pwd = "asdfgh"
self.account_login_page.input_account_pwd(account, pwd)
with allure.step("step--斷言"):
allure.attach("手機格式有問題匣掸,若非中國大陸手機號碼請點擊國際手機登錄", "期望結(jié)果")
assert self.account_login_page.get_bounced_context() == "手機格式有問題趟紊,若非中國大陸手機號碼請點擊國際手機登錄"
print("\\naccount的值:", account, "\\npwd的值:", pwd)
@allure.story("story_two")
@allure.title("title_two")
@allure.step("這是測試step")
def test_two(self):
account = "w124hhh77"
pwd = "asdfg"
self.account_login_page.input_account_pwd(account, pwd)
assert self.account_login_page.get_bounced_context() == "你尚未注冊微博,是否立即注冊"
print("\\naccount的值:", account, "\\npwd的值:", pwd)
@allure.story("story_three")
@allure.title("title_three")
def test_three(self):
account = "hhhhhhhhh"
pwd = "asdfg"
self.account_login_page.input_account_pwd(account, pwd)
assert self.account_login_page.get_bounced_context() == "你尚未注冊微博碰酝,是否立即注冊"
print("\\naccount的值:", account, "\\npwd的值:", pwd)
@allure.story("story_four")
@allure.title("title_four")
@allure.description("description")
def test_four(self):
account = "15059941156"
pwd = "123123"
self.account_login_page.input_account_pwd(account, pwd)
assert self.account_login_page.get_account_pwd_tips() == "帳號或密碼錯誤"
print("\\naccount的值:", account, "\\npwd的值:", pwd)
def teardown_class(self):
AppStart.quit()
if __name__ == '__main__':
pytest.main(["account_pwd_test.py"])
1.@allure.feature霎匈、@allure.story、@allure.title結(jié)果如下:
2.@allure.description結(jié)果如下
3.@allure.step結(jié)果如下:
4.with allure.step和allure.attach結(jié)果如下: