多進(jìn)程啟動設(shè)備和appium實現(xiàn)自動化測試
前言
測試過程中,難免遇到多機(jī)型兼容測試。如果拿很多手機(jī)輪流做手工測試,耗費時間長,重復(fù)工作量大,占用人工多。網(wǎng)上已有較多手機(jī)測試的文章,基本會根據(jù)多個手機(jī)參數(shù)在配置文件中寫死。這樣的方式不夠靈活,本篇文章動態(tài)獲取手機(jī)信息,形成多份desired_caps,便于多手機(jī)啟動讀取不同參數(shù)。同時通過代碼維護(hù)appium服務(wù),檢測端口,釋放端口等。本篇文章致力于一鍵啟動,但仍有很多功能不盡人意,后期盡力維護(hù)。
安裝環(huán)境
測試環(huán)境:
Windows
安裝工具:
Node.js安裝
Python安裝
Appium安裝
Appium-Python-Clinet安裝
Jdk安裝
Android Sdk安裝
appium-doctor 安裝
具體流程
多進(jìn)程啟動多設(shè)備
1. Appium配置
創(chuàng)建yaml文件:此處的yaml文件中,只需要將常用的參數(shù)羅列出即可,后續(xù)會根據(jù)不同的手機(jī)參數(shù),動態(tài)修改其中的值。

初始化appium:該方法需要在調(diào)用時,根據(jù)不同手機(jī)動態(tài)傳入所需參數(shù)。

2.多進(jìn)程啟動多手機(jī)
需要根據(jù)當(dāng)前連接的手機(jī)數(shù)量,創(chuàng)建對應(yīng)個數(shù)的進(jìn)程。首先,獲取當(dāng)前手機(jī)個數(shù)。此方法會獲取當(dāng)前系統(tǒng)中在線手機(jī)的系統(tǒng)版本號、手機(jī)名稱、唯一序列號,封裝到PhoneInfo類中, 并循環(huán)添加到列表中。例如,此時有三臺手機(jī),可據(jù)此創(chuàng)建三個進(jìn)程啟動手機(jī)。

根據(jù)手機(jī)數(shù)量創(chuàng)建多個進(jìn)程,此處需要注意兩點:
端口號會根據(jù)手機(jī)數(shù)量,逐步累加。例如,有三臺手機(jī),則啟動端口號為:4725,4727,4729;
傳入的參數(shù)為上一步封裝的系統(tǒng)版本號、手機(jī)名稱、唯一序列號,以此在多進(jìn)程中匹配并啟動不同的手機(jī);

3.啟動多進(jìn)程測試

多進(jìn)程啟動多服務(wù)
想要進(jìn)行多手機(jī)測試,需要啟動對應(yīng)手機(jī)數(shù)量的多個服務(wù)。
Appium原理如下:

根據(jù)appium原理可知,appium服務(wù)端口號默認(rèn)為4723,想啟動多個appium服務(wù),只需要增加端口號,便可啟動多個服務(wù)。同時,多個appium需要對應(yīng)多個手機(jī),因此多個手機(jī)端也需要指定多個端口號,即形成:
Server? client
4723?? 4724
4725?? 4726
1.啟動服務(wù)的命令。
appium -a 127.0.0.1 -p 4723 --bootstrap-port 4724
2.封裝單進(jìn)程啟動服務(wù)的方法

3.多進(jìn)程啟動服務(wù)
需要根據(jù)當(dāng)前手機(jī)數(shù)量,啟動多少進(jìn)程(前面已經(jīng)看過如何獲取手機(jī)數(shù)量,現(xiàn)在可直接使用)

4.檢測端口、釋放端口
檢測端口:通過socket連接,如果連接通過,則說明當(dāng)前端口被占用,如果連接失敗,會拋異常,則說明當(dāng)前端口未占用,可以在該端口下啟動appium服務(wù)。

釋放端口:該命令可殺掉所有appium服務(wù)。

5.啟動多進(jìn)程測試


