App自動化測試--Appium解析Ruby腳本操作App

Ruby自動化測試腳本

功能:登錄開源中國App(最新版本),并且發送一條動彈。

  • 流程: 啟動模擬器,命令行啟動appium server(或者點擊啟動Appium桌面工具),運行 Ruby腳本。
  • 原理:Appium Client(腳本)鏈接到Appium Server后,Appium Server解析Ruby腳本,通過本地adb操作模擬器上的App(adb shell進入服務器)
# android.rb
require 'rubygems'
require 'appium_lib'
require 'rspec'

# 測試開源中國app
opts = {
        caps: {
          platformName: :android,
          #platformVersion: '26',
          deviceName: '127.0.0.1:62001',
          app: File.expand_path('../apks/net.oschina.app.apk', __FILE__),
          appActivity: 'net.oschina.app.LaunchActivity',
          appPackage: 'net.oschina.app',
          automation_name: 'UiAutomator2'
        },
        appium_lib: {
          # set timeouts to avoid the driver close too soon, seconds
          wait_timeout: 30,
          # appium 默認配置
          appium_port: 4723,
          server_url: 'http://127.0.0.1:4723/wd/hub',
          debug: false,
          sauce_username: nil,
          sauce_access_key: nil
        }
      }

puts '初始化Appium Driver,操作服務器上的 App...'
# Initial a driver
driver = Appium::Driver.new(opts)
driver.start_driver
sleep(5)
# load the appium own methods
Appium.promote_appium_methods self.class


puts '先點擊訂閱頻道,再點擊我的,再點擊頭像進入登錄頁面...'
dingyue_btn = id('net.oschina.app:id/tv_title')
dingyue_btn.click
own = id('net.oschina.app:id/nav_item_me')
own.click
portrait = id('net.oschina.app:id/iv_portrait')
portrait.click
sleep(5)


puts '輸入注冊郵箱和密碼,登錄...'
login_username = id('net.oschina.app:id/et_login_username')
login_username.type('youremail')
login_pwd = id('net.oschina.app:id/et_login_pwd')
login_pwd.type('yourpassword')
submit_btn = id('net.oschina.app:id/bt_login_submit')
submit_btn.click
sleep(5)


puts '點擊底部加號按鈕,選擇發動彈,進入動彈編輯頁面...'
nav_btn = id('net.oschina.app:id/nav_item_tweet_pub')
nav_btn.click
dongtan_btn = id('net.oschina.app:id/ll_pub_tweet')
dongtan_btn.click
sleep(3)


puts '填寫動彈內容,然后點擊發送...'
dongtan_content = id('net.oschina.app:id/edit_content')
dongtan_content.type('test')
send_btn = id('net.oschina.app:id/icon_send')
send_btn.click
sleep(3)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容