Appium介紹
https://github.com/appium/appium
Appium is an open source, cross-platform test automation tool for native, hybrid and mobile web and desktop apps. We support simulators (iOS), emulators (Android), and real devices (iOS, Android, Windows, Mac).
官方解釋:Appium是一款開源的跨平臺測試自動化工具,適用于本地,混合和移動網絡和桌面應用程序。我們支持模擬器(iOS),模擬器(Android)和真實設備(iOS,Android,Windows,Mac)。
支持的平臺
Appium支持跨iOS,Android和Windows等各種平臺的應用程序自動化。每個平臺都由一個或多個“Driver”支持,該驅動程序知道如何自動化該特定平臺。
工作原理

安裝
https://github.com/appium/appium/blob/master/docs/en/about-appium/getting-started.md
桌面版:
https://github.com/appium/appium-desktop
Behavior介紹
BDD介紹
Behavior Driven Development,行為驅動開發(fā)是一種敏捷軟件開發(fā)的技術,它鼓勵軟件項目中的開發(fā)者、QA和非技術人員或商業(yè)參與者之間的協作。其要求在設計測試用例的時候對系統(tǒng)進行定義,倡導使用通用的語言將系統(tǒng)的行為描述出來,將系統(tǒng)設計和測試用例結合起來,從而以此為驅動進行開發(fā)工作。
Behavior介紹
Behavior 是一個能夠理解用普通語言 描述的測試用例的支持行為驅動開發(fā)(BDD)的自動化測試工具,用Python編寫,支持Java和·Net等多種開發(fā)語言。支持使用中文來編寫測試用例。
規(guī)則關鍵字
*?Feature(功能)?*?Scenario(情景)?*?Given(給定)?*?When(當)?*?Then(則)
TestFeature?(功能)?—?test?suite (測試用例集)
Scenario(情景) —?test?case?(測試用例)
Given(給定) — setup(創(chuàng)建測試所需環(huán)境)
When(當)—?test(觸發(fā)被測事件)
Then(則)— assert(斷言,驗證結果)
Behave工作原理

集成開發(fā)
為了兼容android與ios兩個平臺,使用Python語言來開發(fā)測試用例。
1.編寫測試用例 <xxx.feature>
# language: zh-CN
功能: 登錄
??測試登錄流程
?場景: 正常登錄
????假如 進入"首頁"
????而且 點擊"我"
????而且 點擊"登錄/注冊"
????那么 進入"登錄頁"
????當 點擊"用戶名"輸入"13922229988"
????而且 點擊"登錄密碼"輸入"888888"
????而且 點擊按鈕"登錄"
????那么 進入"手勢設置頁"
2.定義step的腳本 <step.rb>
假如 /^進入"(.*)"$/?do?|page|
??pageId =?case?page
???????????when?'首頁'
????????????????'page_index'
???????????when?'登錄頁'
????????????????'page_login'
???????????when?'手勢設置頁'
????????????????'page_gesture_setting'
???????????when?'提現頁'
????????????????'page_withdraw'
???????????else
????????????????'UnKnow'
???????????end
??wait{id(pageId)}
end
而且 /^點擊"(.*)"$/?do?|text|
????scroll_to(text).click
end
而且 /^點擊按鈕"(.*)"$/?do?|text|
????case?text
????when?'我已領取'
?????????id('iv_window_close').click
?????????set_wait(2000)
????else
?????????button(text).click
????end
end
而且 /^下拉刷新$/?do
????swipe start_x:?300, start_y:?200, offset_x:?0, offset_y:?600, duration:?1000
????set_wait(2000)
end
而且 /^點擊"(.*)"輸入"(.*)"$/?do?|text,content|
????etId =?case?text
???????????when?'用戶名'
????????????????'edtLoginUserName'
???????????when?'登錄密碼'
????????????????'edtLoginPassword'
???????????when?'提現輸入框'
????????????????'et_withdraw_amount'
???????????when?'請輸入交易密碼'
????????????????'password'
???????????else
????????????????'UnKnow'
???????????end
????element = find_element :id, etId
????element.type content
end
3.開啟appium server以及模擬器

4.輸出報告 ?在命令后面追加--format html --out reports.html --format prett
