Appium 自動化測試之框架

2021-10-12 07:29:22 字數 2165 閱讀 5700

# 判斷是否進入到完善資訊介面

try:

self.driver.find_element(

*self.perfectinfomation_school)

except nosuchelementexception:

logger.error(

'register fail!'

) self.getscreenshot(

'register fail'

)return

false

else

: self.add_register_info(

)# 註冊結果判斷

if self.check_register_status():

return

true

else

:return

false

其中,check_register_status()方法實現如下:

def

check_register_status

(self)

: self.check_ad(

) logger.info(

'====check_registerstatus===='

)try

: self.driver.find_element(

*self.button_myself)

.click(

) self.driver.find_element(

*self.username)

except nosuchelementexception:

logger.error(

'register fail!'

) self.getscreenshot(

'register_fail'

)return

false

else

: logger.info(

'register success!'

) self.getscreenshot(

'register_success'

)return

true

test_run裡用於執行測試用例並生成測試報告

import sys     #此3行**,是為了用bat指令碼執行此**時避免出現找不到import的模組的錯誤。因為cmd是在工程目錄來執行,import模組時會首先在python path的環境變數中查詢

path =

from bstestrunner import bstestrunner

import unittest

import time

from common.desired_caps import logger

#指定測試用例和測試報告的路徑

test_dir =

'../test_case'

report_dir =

'../reports'

#載入測試用例

discover = unittest.defaulttestloader.discover(test_dir, pattern=

'test_register.py'

)#定義報告的檔案格式和名稱

now = time.strftime(

"%y-%m-%d %h_%m_%s"

)report_name = report_dir +

'/'+ now +

' test_report.html'

#執行用例並生成測試報告

with

open

(report_name,

'wb'

)as f:

runner = bstestrunner(stream=f, title=

"kyb test report"

, description=

) logger.info(

"start run testcase..."

) runner.run(discover)

執行測試的bat指令碼

Appium自動化框架簡介

這樣的好處是以前的webdriver api能夠直接被繼承過來,以前的webdriver各種語言的binding都可以拿來就用,省去了為每種語言開發乙個client的工作量。移動端自動化框架 跨平台 多語言 不需要修改編譯應用。ios 蘋果的uiautomation android 4.2 谷歌的 ...

Appium移動自動化框架

3 自動測試用例執行 4 持續整合環境jenkins,定時自動構建和執行測試任務。自動化始終圍繞乙個session 會話 進行。客戶端初始化乙個session 來與服務端互動,不同的語言有不同的實現方式,但是它們最終都是傳送乙個post 請求給服務端,請求中包含乙個json 物件,其被稱作 desi...

Appium移動自動化框架

3 自動測試用例執行 4 持續整合環境jenkins,定時自動構建和執行測試任務。自動化始終圍繞乙個session 會話 進行。客戶端初始化乙個session 來與服務端互動,不同的語言有不同的實現方式,但是它們最終都是傳送乙個post 請求給服務端,請求中包含乙個json 物件,其被稱作 desi...