以下是啟動多個 android 會話的一些重要引數:
-u
裝置 id
--chromedriver-port
chromedriver 埠 (若是在使用 webviews 或 chrome)
--selendroid-port
selendroid 埠 (若是在使用 selendroid)
node . -p 4492 -bp 2251 -u 32456
node . -p 4491 -bp 2252 -u 43364
如果你使用 chromedriver 或 selendroid,記得確保伺服器的埠號是獨一無二的。
所以capability必須要加上systemport
the important capabilities:
**:
#encoding:utf8
from utils.yamlutil import yamlreader
from conf import conf
#1、通過yaml來讀取caps.yml
reader = yamlreader(conf.conf_caps)
data = reader.data()
#2、結果,字典轉換
#2、desired建立字典
desired_caps=dict()
#3、platformname
desired_caps['platformname'] = data['platformname']
#4、platformversion
desired_caps['platfromversion']=data['platfromversion']
#5、devicename
desired_caps['devicename'] = data['devicename']
#解決中文
desired_caps["unicodekeyboard"] = data['unicodekeyboard']
desired_caps["resetkeyboard"] = data['resetkeyboard']
#獲取toast automationname = uiautomator2
desired_caps["automationname"] = data['automationname']
desired_caps["noreset"] = data["noreset"]
#解決併發測試
#解決中文
unicodekeyboard: true
resetkeyboard: true
noreset: true
#獲取toast automationname = uiautomator2
automationname: 'uiautomator2'
啟動指令碼
import concurrent.futures
import pytest
from base.allure_report import allure_generate
from conf import conf
import os
# 1.方法實現
def run_pytest(device):
report_path = conf.report_path + os.sep + "result"+os.sep+device["name"]
report_html = conf.report_path + os.sep + "html" +os.sep+device["name"]
pytest.main([f"--cmdopt=","--alluredir",report_path])
# time.sleep(2)
allure_generate(report_path, report_html)
# 3.pool併發
def run_pool(devices):
with concurrent.futures.processpoolexecutor(len(devices)) as executor:
executor.map(run_pytest,devices)
if __name__ == '__main__':
# 2.引數列表
devices_list= list()
device_1 =
device_2 =
run_pool(devices_list)
APPIUM 多裝置併發
簡單介紹一下應用場景 專案中 需要併發處理任務,每個裝置對應乙個任務佇列,佇列中有訊息,裝置就開始處理,這樣對於每個裝置處理任務是序列的,裝置之間是並行的。專案中遇到問題及解決方案 1 android 7.0及以上版本 automationname 最好使用 uiautomator2。2 autom...
使用appium測試微博
1 確定測試工具 2 確定測試框架 3 編寫測試用例 4 編寫測試指令碼 5 除錯強化指令碼 這裡直接進入指令碼準備 這裡寫 片啟動微博 這裡寫 片markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的...
appium 測試使用的API
模擬操作類 元素定位類findelementbyxx driver.findelementbyid id id獲取方法 利用uiautomater截圖,獲取resource id driver.findelementbyclassname classname 通常通過這種方式獲取的view不止乙個,...