SoloPi 相容 Appium、Macaca 兩大測試框架
| 背景
自 SoloPi 上線已有半載,收到了一些使用者的正向反饋,也給廣大測試同學帶來一定的效率提升的,和我們的初衷“為業界帶來美而小的工具”相吻合。同時也收到一些建議,例如 SoloPi 還不支援 CI。經過分析,多數公司 CI 都依賴與主流測試框架實現,SoloPi 雖然用例錄製體驗非常好,但與主流測試框架不相容,如果能讓 SoloPi 與主流測試框架相容,那該問題迎刃而解了。
| 「用例轉換」全新功能介紹
為了讓 SoloPi 與主流測試框架相容,用例相容是關鍵,本期我們新增了用例轉換功能。
SoloPi 用例與常規用例有所不同,它會將錄製時控制元件的全部資訊都儲存下來,在回放時綜合進行匹配,而一般的自動化用例往往只會使用其中一種資訊進行匹配。為了更好地適應使用者需求,轉化指令碼支援為每一個步驟配置查詢的條件,方便使用者選擇最合適的方式執行。
目前,SoloPi 轉化指令碼提供了 Appium、Macaca 兩種語言的轉換。你也可以根據自己的需要,參照後文程式碼解析部分,實現自己的轉化指令碼。
| 「用例轉換」使用指南
-
執行入口
python3 handler.py
輸入SoloPi指令碼地址
選擇轉化型別(目前支援Appium和Macaca)
選擇輸出目錄
每一步單獨選擇查詢方式
匯出完成,可以在對應目錄檢視匯出的用例指令碼,匯出的指令碼檔案會被命名為 main.xxx 。
| 擴充套件實現
SoloPi用例核心轉化邏輯在exporter module下,使用者可以擴充套件BaseExporter類,來實現自己的轉換器
class BaseExporter(object):
"""
Export SoloPi case to file
"""
@staticmethod
@abstractmethod
def get_name() -> str:
"""
Get name for this exporter
"""
pass
@abstractmethod
def get_file_extension(self) -> str:
"""
Get File Extension for this type
:return:
"""
pass
def export_head(self, case_info: CaseInfo) -> str:
"""
Export file head, you can export some universal method in this part
"""
return ""
@abstractmethod
def export_step(self, step: Step, index: int, case_info: CaseInfo) -> str:
"""
Export every step
"""
pass
def export_tail(self, case_info: CaseInfo) -> str:
"""
Export file tail, for driver stop
"""
return ""
其中各方法含義如下
get_name: 獲取該匯出器名稱
get_file_extension: 獲取匯出檔案的副檔名
export_head:獲取匯出檔案的字首文字
export_step:獲取單步驟匯出的文字
export_tail:獲取匯出檔案的字尾文字
具體實現可以見 appium.py 與 macaca.py
立即體驗 SoloPi 最新功能
https://github.com/soloPi/SoloPi-Convertor
體驗 SoloPi 完整功能
https://github.com/alipay/SoloPi
| 問題反饋
歡迎大家在日常的迴歸測試、相容性測試以及效能測試過程中試用SoloPi工具,過程中如有任何問題和意見,可以在github上通過Issue進行反饋,也可加入SoloPi開源交流群參與討論。
相關文章
- 使用 Macaca 測試 Electron 桌面 AppMacAPP
- 『與善仁』Appium基礎 — 8、Appium自動化測試框架介紹APP框架
- 基於 appium 的安卓 UI 及多裝置相容測試工具APP安卓UI
- 『與善仁』Appium基礎 — 14、Appium測試環境搭建APP
- Appium 之測試微信小程式APP微信小程式
- Appium之測試微信小程式APP微信小程式
- 軟體相容性測試有什麼作用?相容性測試必備測試工具
- Android常用9種自動化測試框架對比,Appium有哪些優勢?Android框架APP
- 制定測試計劃之相容性測試
- 關於使用 Appium 的 wda 測試 IOS 的 XCUI 框架 app 中元素的問題APPiOSUI框架
- 軟體相容性測試知識分享,相容性測試有什麼作用?
- 軟體相容性測試該怎麼進行?哪些軟體測試公司可做相容性測試?
- 整合自動化測試整合框架,整合 Appium+TestNG+ReportNG+ExtentNG+Log4j2+Maven框架APPMaven
- Jenkins整合appium自動化測試(Windows篇)JenkinsAPPWindows
- Appium iOS 測試指令碼開發實戰APPiOS指令碼
- 軟體相容性測試怎麼進行?相容性測試有什麼作用?
- 前端測試框架前端框架
- TIDB與MYSQL相容性測試TiDBMySql
- 前端相容測試思路請教前端
- 3分鐘瞭解Appium:使用appium做Android手機自動化測試!APPAndroid
- 軟體相容性測試包含哪幾種型別?相容性測試如何收費?型別
- 搭建appium+python自動化測試環境APPPython
- Appium自動化測試之常用的adb命令APP
- python+appium+pytest做app自動化測試PythonAPP
- iOS appium UI 自動化測試配置可控 xpathiOSAPPUI
- appium uiautomator 移動端自動化測試工具APPUI
- Appium上下文和H5測試(二)APPH5
- Appium上下文和H5測試(一)APPH5
- Appium Safari 測試 H5 如何讓它不預設開的 appium.io 地址APPH5
- 【軟體測試】你最常用的web測試-瀏覽器相容性測試Web瀏覽器
- api測試框架 GuardianAPI框架
- 前端測試框架 Jest前端框架
- Web測試框架SeleniumBaseWeb框架
- python測試框架-pytestPython框架
- 介面測試框架Requests框架
- Appium 做 flutter 自動化測試實踐&採坑APPFlutter
- Macaca 能否做桌面版程式的自動化測試呢?(Electron 打包的 exe)Mac
- 【功能測試】兩部電梯的測試用例