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)