新聞中心
簡介
隨著產(chǎn)品業(yè)務(wù)形態(tài)逐漸從 App 延升到微信小程序、微信公眾號以及 QQ公眾號等,而之前的自動化建設(shè)主要是 Native App 為主,全手工測試已無法滿足快速增長的業(yè)務(wù)需求。為提升測試效率和質(zhì)量,F(xiàn)AutoTest 框架致力于解決 QQ、微信內(nèi) UI 的自動化問題(包括微信內(nèi) H5頁面和小程序、QQ 內(nèi) H5頁面),提升自動化測試的效率和穩(wěn)定性。
秀山土家族苗族ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!
FAutoTest 是一款成長中的框架,吸收借鑒了一些 UI 自動化工具的優(yōu)秀設(shè)計理念和思想。如果框架有不足地方,或者你有更好的建議,歡迎提交 Issues 參與貢獻。
特性
FAutoTest 專業(yè)服務(wù)于微信 H5/小程序的UI自動化測試,提升測試效率與質(zhì)量。
- 支持微信 H5頁面,能識別常見 H5控件,能獲取頁面任意內(nèi)容(常見的如文字、圖片、鏈接等)
- 支持小程序內(nèi)控件識別,操作,頁面內(nèi)容獲取等
- 支持安卓 Native 頁面組合操作使用
- 簡單的 API 設(shè)計,較低的使用門檻
- 支持基礎(chǔ)的性能測試監(jiān)控
- 功能擴展性強,擴展門檻低
架構(gòu)
整體采用分層設(shè)計,API設(shè)計方式參考 WebDriver
整體框架是一個同步阻塞的模型:在一個線程中循環(huán)的執(zhí)行 receive 方法,等待收到 response,發(fā)送消息后,阻塞,只有當(dāng) receive 方法獲得消息時,才會解除阻塞,發(fā)送下一條消息,具備超時異常處理機制
框架內(nèi)打包了 Python 版本的 UIAutomator,方便在安卓 Native 頁面進行操作
User Interface(用戶交互層): 提供給用戶所有的界面操作 API(H5界面及小程序界面),使用者不需要關(guān)注框架內(nèi)部實現(xiàn),只需要關(guān)注自身業(yè)務(wù)邏輯流程(手工用例流程轉(zhuǎn)換成自動化流程)
PageOperator(操作解析層): 主要用于接收和解析用戶命令后傳遞給下層 Engine 層
Engine( H5&小程序引擎層): 將用戶命令傳輸?shù)绞謾C,并返回結(jié)果信息。封裝 WebSocket 和單線程池,通過WebSocket Debug URL 和瀏覽器內(nèi)核建立鏈接,發(fā)送 Json 格式的協(xié)議到手機端進行用戶指定的操作。
業(yè)務(wù)流程
H5頁面/小程序 UI 自動化執(zhí)行流程
自動化腳本調(diào)用流程
依賴軟件環(huán)境
軟件 | 軟件要求 |
---|---|
Python 版本 | 2.7.x 版本 |
Java JDK 版本 | Java 語言框架(最低1.7) |
Android SDK 版本 | 4.4 及以上版本 |
adb 版本 | 最新版本即可 |
Python IDE 開發(fā)環(huán)境 | 如 PyCharm CE等 |
1. Python 版本安裝
下載 & 安裝 Python ,安裝后在終端輸入命令 python -v 和 pip list,能夠執(zhí)行,說明 Python 環(huán)境配置成功。
2. Java JDK 版本安裝
下載 & 安裝 Java JDK 安裝后在終端輸入命令java -version,java, javac命令能夠執(zhí)行,則 Java 環(huán)境配置成功。
3. Android SDK 版本安裝
下載 & 安裝 Android Studio ,然后在里面安裝 Android SDK
4. 配置 adb 環(huán)境
安裝 Android Studio 后,配置 SDK 環(huán)境(若自動安裝不成功,可到 手動下載安裝 ,安裝后在終端輸入命令 adb version 執(zhí)行有結(jié)果,則說明配置成功
5. IDE 安裝
下載 & 安裝 Pycharm CE
FAutoTest 開發(fā)環(huán)境安裝
庫名稱 | 版本 | 下載地址 |
---|---|---|
uiautomator | 0.3.2 | https://pypi.org/project/uiautomator/#files |
lxml | 4.2.3 | https://pypi.org/project/lxml/4.2.3/#files |
bidict | 0.17.0 | https://pypi.org/project/bidict/#files |
websocket-client | 0.44.0 | https://pypi.org/project/websocket-client/#files |
使用pip安裝框架所需的第三方庫 uiautomator、websocket-client、lxml、bidict、ADBkeyBoard,如安裝lxml、bidict、websocket-client可用pip形式安裝,如安裝lxml,
pip install lxml
安裝自身框架
pip intsall dist/fastAutoTest-xxx.whl
打開微信Debug模式,安裝 TBS 內(nèi)核
- 可在微信中打開 X5 調(diào)試地址: http://debugx5.qq.com
- TBS 內(nèi)核安裝地址: http://debugtbs.qq.com
- 詳情方式見: http://x5.tencent.com/tbs/guide/debug/faq.html
使用方式
如何寫測試案例,如微信 H5頁面,如下所示:
# coding=utf-8 from fastAutoTest.core.h6.h6Engine import H5Driver # http://h6.baike.qq.com/mobile/enter.html 從微信進入此鏈接,首屏加載完后執(zhí)行腳本 if __name__ == '__main__': h6Driver = H5Driver() h6Driver.initDriver() h6Driver.clickElementByXpath('/html/body/div[1]/div/div[3]/p') h6Driver.clickFirstElementByText('白內(nèi)障') h6Driver.returnLastPage() h6Driver.returnLastPage() print(h6Driver.getElementTextByXpath('/html/body/div[1]/div/div[3]/p')) h6Driver.close()
- 從微信初始化 H5頁面,如進入 http://h6.baike.qq.com/mobile/enter.html
- 進入頁面后找到需要操作的控件的xpath,可通過 chrome:inspect 找到當(dāng)前頁面,找到控件的xpath
- 初始化框架并進行 API 調(diào)用,如執(zhí)行點擊控件等
- 關(guān)閉框架,執(zhí)行用例
QQ 的 H5頁面:
# coding=utf-8 from fastAutoTest.core.qq.qqEngine import QQDriver # 從動態(tài) -> 動漫進入 if __name__ == '__main__': qqDriver = QQDriver() qqDriver.initDriver() qqDriver.clickFirstElementByText('英雄救美,這也太浪漫了') qqDriver.returnLastPage() qqDriver.clickElementByXpath('//*[@id="app"]/div/ul/li[2]') qqDriver.returnLastPage() qqDriver.close()
- 從 QQ 動態(tài),進入動漫 H5頁面
- 找到需操作的控件的xpath,可通過 chrome:inspect 找到當(dāng)前頁面,找到控件的xpath
- 初始化框架并進行相關(guān) API 調(diào)用
- 關(guān)閉框架,執(zhí)行用例
微信小程序:
# coding=utf-8 from fastAutoTest.core.wx.wxEngine import WxDriver import os # 進入企鵝醫(yī)典小程序 if __name__ == '__main__': wxDriver = WxDriver() wxDriver.initDriver() # 點擊全部疾病 wxDriver.clickElementByXpath('/html/body/div[1]/div/div[3]/p') wxDriver.clickFirstElementByText('白內(nèi)障') wxDriver.returnLastPage() wxDriver.returnLastPage() # 截圖 dirPath = os.path.split(os.path.realpath(__file__))[0] PIC_SRC = os.path.join(dirPath, 'pic.png') wxDriver.d.screenshot(PIC_SRC) wxDriver.close()
- 搜索小程序,如企鵝醫(yī)典小程序,進入小程序頁面
- 同樣找控件的xpath,同上操作
- 初始化框架,進行相關(guān) API 調(diào)用
- 關(guān)閉框架,執(zhí)行用例
網(wǎng)頁標(biāo)題:FAutoTest一個H5、小程序自動化測試框架
本文路徑:http://fisionsoft.com.cn/article/psossd.html