微信号:testing51testing

介绍:51Testing软件测试网,人气最旺的软件测试技术门户,提供软件测试社区交流,软件测试博客,人才服务,测试沙龙,测试杂志,测试资料下载等全方位信息服务,是国内最专业的软件测试就业培训、企业服务供应商...

基于Android和iOS移动应用程序的Appium实用教程

2017-03-27 17:30 Neeraj



  如何在Windows上安装设置Appium程序?

  Appium 作为一种开放性资源和跨平台交流工具,对自动化移动应用测试(包括安卓系统和IOS系统)很有帮助。Appium支持本地型、移动型以及混合型。

  以下有三种移动应用类型:

  • 本地型:Native app是基于智能手机本地操作系统例如Ios、Android或Windows并使用源生式编写运行是的第三方运行程序,需借助特定的平台和设备运作。

  • 混合型:混合模式移动应用是指介于web app、native app这两者之间的app,兼具Native App良好用户交互体验的优势和Web App跨平台开发的优势。

  • 移动型:移动Web app是基于Web的系统和应用,是需使用移动浏览器访问的应用程序。

  为什么Appium是一款受自动化移动设备欢迎的测试工具?

  Appium是一款跨平台测试工具,即它可以让你在多个平台(Ios、Android、Windows)使用同一个API进行测试。这在手机和平板的回归测试中有广泛的使用。

  在Windows上设置Appium工具

  必要条件:这是一个需要用Appium去测试自动化手机app硬件和软件的简短清单

  1.你的PC应安装JDK、Appium Server、Eclipse,、Android SDK这几项

  2.APK:手机应用应该将在我们的通信管理器中自动化

  3.测试设备:在这个例子中使用是Moto G

  4.Jars:Java客户端jars和Selenium Jars

  5.测试USB驱动设备:这例子中使用的是Moto G

  第一步:安装软件开发工具包(JDK)

  第二步:设置java环境变量路径(Java Environment Variable Path)

  第三步:下载和安装Android SDK,更新API

  更新API:打开Eclipse ->点击Eclipse菜单中窗口->选择Android SDK manager

  更新API如下图所示:

  第四步:下载安装Appium。

  第五步:下载Node JS

  第六步:设置ANDROID_HOME路径和JAVA_HOME路径.

  标注存在于安卓软件开发工具包路径中的工具和平台工具路径

  这些文件夹以adt-bundle-windows-x86_64-20140702\sdk形式呈现

  现在我们需要更新环境变量(参照下图)

  使用工具和平台工具更新路径(文件格式为Android SDK)

  进入路径格式如下:

  C:\Program Files\nodejs\;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools

  第七步:访问adb

  按Win+R组合键

  输入CDM,然后在CDM中输入abd,abd将会通过程序

  用Appium为自动化去准备手机装置

  将要测试的移动设备USB和PC链接。在启动app之前在手机上激活开发者模式

  在安卓手机或平板上确认开发者模式/选项步骤:

  1)打开设置,点击"About",点击"Software Information",点击"More"

  2)点击"Build number"7次使开发者选项能够使用

  3)返回设置,确认"开发者选项"存在

  4)点击开发者选项,在下一个页面菜单中打开USB调试选项

  5)在移动测试设备PC上下载并安装USB驱动程序

  6)在adb终端敲入'adb devices'

  C:\Users\NEERAJ>adb devices

  List of devices attached

  TA93305G0L      device

  在设备上下载并安装Contact Manager.apk,将其作为一个App样本,然后使用Appium测试Android App

  开始试用Appium测试Android App

  现在运行appium.exe

  Appium需要运行和通过Android设置中的以下参数和设置名称

  注意:不要更改端口编号和任何一般设置图标。当Appium服务器启动,服务器地址和端口地址都会恢复为默认设置,默认情况下端口地址为4723。

  在Android设置中,用户需要设置APK路径(包括APK的位置)、检查app路径,package以及launch Activity。

  1.连接Android手机到PC,打开USB调试模式。

  2.打开命令目录

  3.敲击命令adb logcat。

  4.开Android手机的应用程序,在命令目录按下Ctrl + C

  com.example.android.contactmanager是 package 的名称,andcom.example.android.contactmanager.ContactManager 是Contact Manager app的activity 名称。

  在上面的截图中,我们已经修改了Appium需要的所有信息,package、lunch activity和移动设备名称。

  如何使用UIAutomatorViewer定位各要素?

  1)要使应用程序自动化,首先我们需要找到相应应用程序的元素,为我们使用UIAutomatorViewer做准备。

  2)让已下好APP的设备与PC连接

  3)敲击'adb devices'

  C:\Users\NEERAJ>adb devices

  List of devices attached

  TA93305G0L      device

  4)打开需要自动化的移动设备App

  5)打开UIAutomatorViewer然后转到下条路径

  adt-bundle-windows-x86_64-20140702\sdk\tools

  6)确认APP和UIAutomaterViewer是否开启

  7)此选项将采取该应用程序的截图与所有可见的应用程序上的所有元素的详细信息。

  单击"添加联系人按钮"用于测试剧集(Test Scenario)

  操纵以下界面,管理链接应用程序将会在这些实际设备上被安置,所有的标志将会在控制台上显示,这将会通过上面的页面给你展示所有被激发的运行步骤

  1 importjava.io.File;

  2 importjava.net.MalformedURLException;

  3 import java.net.URL;

  4 importjava.util.List;

  5

  6 importorg.openqa.selenium.By;

  7 importorg.openqa.selenium.WebDriver;

  8 importorg.openqa.selenium.WebElement;

  9 importorg.openqa.selenium.remote.CapabilityType;

  10 importorg.openqa.selenium.remote.DesiredCapabilities;

  11 importorg.openqa.selenium.remote.RemoteWebDriver;

  12 importorg.testng.annotations.*;

  13

  14 public class appium {

  15

  16 WebDriver driver;

  17

  18 @BeforeClass

  19 public void setUp() throws Exception {

  20

  21 //location of the app

  22 File app = new File("C:\\Users\\NEERAJ\\Downloads","ContactManager.apk");

  23

  24 //To create an object of Desired Capabilities

  25 DesiredCapabilities capability = new DesiredCapabilities();

  26 //OS Name

  27 capability.setCapability("device","Android");

  28 capability.setCapability(CapabilityType.BROWSER_NAME, "");

  29 //Mobile OS version. In My case its running on Android 4.2

  30 capability.setCapability(CapabilityType.VERSION, "4.2");

  31 capability.setCapability("app", app.getAbsolutePath());

  32 //To Setup the device name

  33 capability.setCapability("deviceName","Moto G");

  34 capability.setCapability("platformName","Android");

  35 //set the package name of the app

  36 capability.setCapability("app-package","com.example.android.contactmanager-1");

  37 //set the Launcher activity name of the app

  38 capability.setCapability("app-activity", ".ContactManager");

  39 //driver object with new Url and Capabilities

  40 driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capability);

  41 }

  42

  43 @Test

  44 public void testApp() throws MalformedURLException{

  45

  46 System.out.println("App launched");

  47 // locate Add Contact button and click it

  48 WebElementaddContactButton = driver.findElement(By.name("Add Contact"));

  49 addContactButton.click();

  50 //locate input fields and type name and email for a new contact and save it

  51 List<WebElement>textFields = driver.findElements(By.className("android.widget.EditText"));

  52 textFields.get(0).sendKeys("Neeraj Test");

  53 textFields.get(1).sendKeys("9999999999");

  54 textFields.get(2).sendKeys("testemail@domain.com");

  55 driver.findElement(By.name("Save")).click();

  56 //insert assertions here

  57 }

  58 }

  结论

  随着新兴产业的崛起和移动APP不断需求,所有的领头企业都有将自己公司的业务拓展到移动APP领域。因此,为了使移动APP具有更高的质量,移动APP的自动化设备是这个行业最新的趋势。Appium,由于其简单性和易用性,在全球ios和android系统性能自动化测试中得到最为广泛的使用。

  关于作者:这篇文章是由Neeraj团队成员STH原创。他是一个对软件开发和测试充满热情的高级软件开发工程师,通过这篇文章希望你能发觉Appium的有用之处。欢迎您与我们讨论,并在下方留言。

 
推荐阅读

点击阅读☞免费移动应用测试框架—Appium篇

点击阅读☞Appium+Robotframework实现手机应用的自动化测试

点击阅读☞Appium for Windows环境搭建

点击阅读☞Selenium体系结构的疑惑及解答

点击阅读☞移动自动化测试工程的开展(上)


填问卷送视频,福利倒计时!

 
51Testing软件测试网 更多文章 一位软件测试工程师逃离北京的这些年(3) 一位软件测试工程师逃离北京的这些年(2) 【招聘】高薪诚聘,蚂蚁金服,滴滴,饿了么等企业热门职位等你来! 测试工程能力容器化改造方案 【答题赢新书】《VR及AR开发高级教程—基于Unity》强力来袭!
猜您喜欢 职场最重要的15种能力 对话美团首席架构夏华夏 SparkSQL之更改表结构 Python学习之错误、调试和测试 诚聘数据挖掘工程师|数据人才