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

发表于:2017-3-27 09:15

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Neeraj    来源:51Testing软件测试网原创

  如何在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)
  操纵以下界面,管理链接应用程序将会在这些实际设备上被安置,所有的标志将会在控制台上显示,这将会通过上面的页面给你展示所有被激发的运行步骤
1importjava.io.File;
2importjava.net.MalformedURLException;
3import java.net.URL;
4importjava.util.List;
5
6importorg.openqa.selenium.By;
7importorg.openqa.selenium.WebDriver;
8importorg.openqa.selenium.WebElement;
9importorg.openqa.selenium.remote.CapabilityType;
10importorg.openqa.selenium.remote.DesiredCapabilities;
11importorg.openqa.selenium.remote.RemoteWebDriver;
12importorg.testng.annotations.*;
13
14public 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
44public void testApp() throws MalformedURLException{
45
46System.out.println("App launched");
47 // locate Add Contact button and click it
48WebElementaddContactButton = driver.findElement(By.name("Add Contact"));
49addContactButton.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"));
52textFields.get(0).sendKeys("Neeraj Test");
53textFields.get(1).sendKeys("9999999999");
54textFields.get(2).sendKeys("testemail@domain.com");
55driver.findElement(By.name("Save")).click();
56 //insert assertions here
57 }
58 }
  结论
  随着新兴产业的崛起和移动APP不断需求,所有的领头企业都有将自己公司的业务拓展到移动APP领域。因此,为了使移动APP具有更高的质量,移动APP的自动化设备是这个行业最新的趋势。Appium,由于其简单性和易用性,在全球ios和android系统性能自动化测试中得到最为广泛的使用。
  关于作者:这篇文章是由Neeraj团队成员STH原创。他是一个对软件开发和测试充满热情的高级软件开发工程师,通过这篇文章希望你能发觉Appium的有用之处。欢迎您与我们讨论,并在下方留言。
版权声明:51Testing软件测试网原创出品,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号