闲来无事,准备记录一下在Windows下搭建Ruby+appium自动化测试的环境,方便以后使用。
一.安装node.js
这个百度一下,直接从官网去下载安装即可,官网链接:https://nodejs.org/en/。官网上有两个版本,一个LTS是大多数用户使用的,相当于成熟的旧版本吧;另一个Current是最新版。下哪个都可以,凭自身喜好吧~
node.js下载完成后,就按默认next安装就ok了,安装完成后它会自动加进环境变量中的,所以cmd中输入node -v能显示版本号就表明安装成功啦
二.安装Appium
这里我推荐直接从网上下载appium-for-Windows的安装包直接安装啦,这样更方便快捷。下载地址:https://bitbucket.org/appium/appium.app/downloads/
直接按默认安装就好,安装完成后,别忘记将appium加入到环境变量path当中
C:\Program Files (x86)\Appium\node_modules\.bin
这时候你双击appium图标,正常打开就OK啦,如果提示说缺少.net framework,那只要去网上下载相应版本的.net framework安装即可。正常打开的appium应该是下图这个样子的,默认配置就好啦
三.安装JDK和SDK
移动端的自动化当然是少不了jdk和sdk的啦。jdk即为Java运行环境,sdk即为Android运行环境。
jdk可以去官网上或者百度下载,各个版本都可以,我这里用的是jdk1.8版本的。下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
jdk下载完成后直接安装就好了,安装完了也记得加进环境变量中
新建系统变量 JAVA_HOME 值 ....\JAVA\JDK\jdk1.8.0_144 (这个路径就是你装好jdk所在的路径)
新建 CLASS_PATH 值 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; (开头的 . 是必要的哈)
随后就在path中 加入 ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
OK,这样jdk的环境变量就加好啦!验证一下,打开cmd,输入java 或者 javac ,如下图显示就表明正常
接下来的sdk也是一样,去官网下载,下载地址:http://tools.android-studio.org/index.php/sdk
下载好了后安装或者解压(我下载的是压缩包,不用安装,解压就可以用),可能会缺少platform-tools文件夹,没事,直接去网上下载就行,下载地址:https://developer.android.google.cn/studio/releases/platform-tools
完了后,一样加进环境变量中
新建系统变量 ANDROID_HOME 值 ....\AndroidSDK\android-sdk_r24.4.1-windows\android-sdk-windows
在系统变量path中,加入值:;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;
接下来,验证一下,打开cmd,输入appium-doctor来检查所有appium需要的环境是否ok,如下图显示,就是正常的
ok,至此,appium的环境算是搭建完成了,接下来要准备ruby的环境啦
三.ruby,ruby+appium
首先当然是下载ruby的语言包,下载地址:https://rubyinstaller.org/downloads/
下载完了安装(安装时会自动加进环境变量,所以不用单独设置) 安装完了后,验证一把,cmd中输入ruby -v
ruby装完后,接下来我们要下载ruby-appium库,有了这个才能用ruby来控制appium~~命令如下:
1.gem update --system
2.gem update bundler
3.gem install --no-rdoc --no-ri appium_lib
下载完成之后,就OK了,下面就用代码来检验一下是不是可以运行--打开短信,新建信息输入并发送(这里我是用小米手机USB连接电脑的)
代码
#coding:utf-8 require 'em/pure_ruby' require 'appium_lib' caps = { caps: { platformName: 'Android', appActivity: 'com.android.mms.ui.MmsTabActivity',#app的Activity名 appPackage: 'com.android.mms',#app的包名 deviceName: '57133922',#设备名 unicodeKeyboard: 'True', udid:'57133922'#设备id }, appium_lib: { sauce_username: nil, sauce_access_key: nil } } begin driver = Appium::Driver.new(caps,true).start_driver Appium.promote_appium_methods Object rescue puts("启动小米短厅失败") end driver.find_element(:xpath,"//android.widget.ImageView[@resource-id='com.android.mms:id/fab']").click driver.find_element(:xpath,"//android.widget.EditText[@resource-id='com.android.mms:id/recipients_editor']").send_keys("10086") driver.find_element(:xpath,"//android.widget.RelativeLayout[@resource-id='com.android.mms:id/message_content_panel']").send_keys("11") driver.find_element(:xpath,"//android.widget.Button[@resource-id='com.android.mms:id/send_button']").click sleep 3 driver.quit