App自动化测试-1.App自动化介绍和环境搭建
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
App⾃动化测试-1.App⾃动化介绍和环境搭建
App⾃动化测试-1.App⾃动化介绍和环境搭建
App⾃动化测试-1.App⾃动化介绍和环境搭建
App⾃动化⼯具介绍
当前主流的App⾃动化⼯具
作为近⼏年兴起的测试类型,App⾃动化测试正在变得越来越流⾏。
当前主流的App⾃动化⼯具有:Appium,Robotium,Espresso,Calabash等。
这⾥我们主要讲最主流的⼯具:Appium。
主流App测试⼯具对⽐
Appium⽀持Android和IOS⾃动化测试。
Appium⽀持Selenium WebDriver⽀持的所有语⾔,java、Object-C、JavaScript、Php、Python、Ruby、C#、Clojure,或者Perl语⾔,更可以使⽤Selenium WebDriver的Api。
新⼿容易⼊门,但⾄少要熟悉java等⼀门语⾔。
Appium的架构
事实上,Appium主要是通过向Android操作系统中的bootstrap.jar包,通过获取⼿机root调试权限来操控⼿机。
在Appium看来,⼿机可以被看作是⼀个⽹站web,Appium服务器端和⼿机主要通过session对话来进⾏通讯。
⾃动化始终围绕⼀个Session(会话)进⾏。
客户端初始化⼀个Session 来与服务端交互,不同的语⾔有不同的实现⽅式,但是它们最终都是发送⼀个POST 请求给服务端,请求中包含⼀个JSON 对象,其被称作“Desired Capabilities”。
此时,服务端就会开启⼀个⾃动化的 Session,然后返回⼀个Session ID,Session ID 将会被⽤户发送后续的命令。
Desired Capabilities是⼀些键值对的集合(⽐如⼀个 map 或者 hash)。
客户端将这些键值对发送给服务端,告诉服务端我们想要怎样测试。
⽐如,我们可以把platformName capability 设置为 android,告诉Appium 服务端,我们想要⼀个android 的session,⽽不是⼀个 IOS 的session。
Client/ServerArchitecture Appium server是⽤node.js写的,安装node.js可以直接⽤npm命令或dmg,server端功能:监听⼀个端⼝,接收client发送来的command,翻译这些命令,把这些command转成移动设备可以理解的形式发送给移动设备,然后移动设备执⾏完command后把执⾏结果返回给appium server,appium再把执⾏结果返回给client。
Client其实就是发起command的设备,⼀般来说就是执⾏代码的机器,执⾏appium测试代码的机器,可以把client 理解成代码,这些代码可以是java、python、ruby、js,只要实现了webdriver标准协议就可以。
环境搭建
安装Python
安装JDK
安装Android SDK
完成之后运⾏安装⽬录下的SDK manager.exe,安装下列打钩的包,点击install/update进⾏安装。
其它的安装包,特别是安卓系统镜像不⽤安装,对于⾃动化测试来讲
安装node.js
注意:32位和64是不同的版本
装好之后,可以通过:node -v命令来查看安装是否成功
安装Appium
安装模拟器
某些时候,我们可能不⽅便⽤真机测试,可以先⽤模拟器在电脑上安装进⾏测试。
当然这样做的局限性也很⼤,模拟器和真机的性能以及操作系统版本差异可能很⼤,所以模拟器并不能替代真机做⾃动化测试。
这⾥推荐使⽤夜神模拟器,最新版本6.5.0.0基于android5.1.1版本制作。
不是很推荐android sdk⾃带的avd模拟器,性能⽐较慢,卡顿⽐较严重。
连接模拟器或者真机
连接真机
连接真机⽐较简单,打开开发者选项,然后在开发者选项中勾选usb调试模式,然后数据线连接电脑,⼿机会弹出是否允许usb调试,点击确定。
很多⼿机的开发者选项是隐藏的,所以要先百度⾃⼰对应机型的打开⽅式,某些⼿机是在设置->系统->关于⼿机界⾯,连击多次版本号位置可以打开。
⼿机通过数据线连接电脑有可能不被识别或者⽆法adb连接,这时需要去下载⾃⼰⼿机型号对应的usb驱动程序。
如果以上连接和驱动都正常,打开cmd窗⼝,输⼊:adb devices
如果连接正常,则如下图:
如果出现这种,设备显⽰为unauthorized,说明⼿机没有允许电脑的usb调试,重新检查下开发者选项的相应设置。
有些时候adb的版本不统⼀也会造成⽆法adb连接的情况,那么可能需要升级或者降级android sdk⾥⾯的platform-tools。
连接模拟器
连接模拟器稍微⿇烦⼀点,⾸先运⾏模拟器:夜神
通过任务管理器->详细信息,查看进程PID,如下图:
再在cmd模式下输⼊:netstat -ano|findstr "夜神的PID"来查看模拟器占⽤端⼝。
这⾥查到通讯的端⼝是:62001,当然如果你只⽤夜神模拟器的话,记住这个端⼝也是可以的。
接下来使⽤adb⼯具连接模拟器:adb connect 127.0.0.1:62001
连接之后也可以使⽤:adb devices查看当前连接设备
启动Appium
保证adb连接上之后,接下来启动appium,在host中填写本机地址:127.0.0.1,然后点击start server。
然后⼀切正常的话,可以看到这个界⾯。
这样我们就初步完成了appium⾃动化测试环境的搭建,还有python的设置这块放在下⼀章。