Appium移动自动化测试(三)--自动化测试demo
使用java语言编写并实现自动化测试实例
前面我已经搭建好了appium所需要的环境,本文我以系统自带的计算器app为测试对象,进行学习。
一、将测试机与PC连接
本人使用的是Android模拟器,测试时也可选择真机,操作步骤都是一样的。通过Usb接口将真机与PC端连接起来,(由于我使用的是模拟器,所以只需启动模拟器就行了)。在安装appium搭建环境中我们已经安装了SDK,所以打开CMD命令窗口,用adb devices命令来查看是否可以检测到手机设备,如果如下图显示出设备,则证明我们可以对手机进行测试操作。


可以看出,我的测试机器设备的device是:emulator-5554
二、打开指定测试App的指定Activity
通过上一步操作,我已经看到我的设备是可以操作的了,那究竟应该如何让appium去自动找到指定的APP和指定的Activity呢?想要打开指定的App,需要知道App的包名,同样想要打开指定Activity也需要知道其名,如何获取?
1、问公司的开发人员,一定可靠。
2、通过命令获取:adb shell dumpsys window w |findstr \/ |findstr name=(这条命令的作用是,获取当前app和当前Activity的名字,我现在手机已经打开了计算器应用)如图:


三、打开uiautomatorviewer获取元素
接下来需要用uiautomatorviewer对测试app的元素(button、text Field)进行抓取,比如通过id、class和text等来确定具体的元素。 uiautomatorviewer是在android-sdk的一个工具,具体目录\android-sdk-windows\tools\uiautomatorviewer.bat。
操作:
1、在D:\Android\android-sdk-windows\tools路径下找到uiautomatorviewer.bat,双击uiautomatorviewer.bat,打开UI Automator viewer 窗口,如图所示:


2、在手机与PC端连接的情况下,点击 “Device screenshot”, 连接手机应用的窗口将显示出来,如图:

3、测试“1+2=3”的用例,在uiautomatorviewer界面,点击“1”,选中该按钮,查看右边的panel来找到“text”或“resource-id” 或“class”的值,如图:

保存其:resource-id

保存其:resource-id

保存其:resource-id

保存其:resource-id
四、创建java项目
我们已经获取到想要的元素,下一步就是用代码编写测试用例了,打开eclipse软件,创建一个java project ,导入依赖,如图:

五、测试源代码
代码实现1+2= 3的自动化测试
package com.occall.ui; import org.testng.annotations.Test; import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver; import org.testng.annotations.BeforeClass; import java.net.MalformedURLException;
import java.net.URL; import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterClass; public class NewTest {
private AppiumDriver driver;
@Test
public void f() {
//获取1
driver.findElementById("com.android.calculator2:id/digit1").click();
//获取+
driver.findElementById("com.android.calculator2:id/plus").click();
//获取2
driver.findElementById("com.android.calculator2:id/digit2").click();
//获取=
driver.findElementById("com.android.calculator2:id/equal").click();
}
@BeforeClass
public void beforeClass() {
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(CapabilityType.BROWSER_NAME, "");
cap.setCapability("platformName", "Android"); //指定测试平台
cap.setCapability("deviceName", "emulator-5554"); //指定测试机的ID,通过adb命令`adb devices`获取
cap.setCapability("platformVersion", "23"); //将上面获取到的包名和Activity名设置为值
cap.setCapability("appPackage", "com.android.calculator2");
cap.setCapability("appActivity", "com.android.calculator2.Calculator"); //A new session could not be created的解决方法
cap.setCapability("appWaitActivity","com.android.calculator2.Calculator");
//每次启动时覆盖session,否则第二次后运行会报错不能新建session
cap.setCapability("sessionOverride", true); try {
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} @AfterClass
public void afterClass() {
driver.quit();
} }
六、启动Appium
手机设备连接到PC端,手机屏幕打开着。接着启动Appium,启动成功如下图:


点击左上角的机器人图标,可以查看设备的相关信息。

七、运行测试类
安装TestNG,点击eclipse中“Help”选项,选择【Install New Software】输入“AppiumTest - http://beust.com/eclipse”,相关设置如下:

点击【Finish】按钮自行安装即可,安装完成后运行测试类。

测试成功:


可以看到,手机端的计算器app,也会自动出现1+2 = 3的自动化输入测试。现在,测试已完成。
Appium移动自动化测试(三)--自动化测试demo的更多相关文章
- 基于Appium、Python的自动化测试
基于Appium.Python的自动化测试环境部署和实践 第一章 导言 1.1 编制目的 该文档为选用Appium作为移动设备原生(Native).混合(Hybrid).移动Web(Mobile ...
- 广深小龙-基于unittest、pytest自动化测试框架之demo来学习啦!!!
基于unittest.pytest自动化测试框架之demo,赶紧用起来,一起学习吧! demo分为两个框架:①pytest ②unittest demo 中 包含 web.api 自动化测试框架 ...
- appium+Python真机运行测试demo的方法
appium+Python真机运行测试demo的方法 一, 打开手机的USB调试模式 二, 连接手机到电脑 将手机用数据线连接到电脑,并授权USB调试模式.查看连接的效果,在cmd下运行命 ...
- SignalR代理对象异常:Uncaught TypeError: Cannot read property 'client' of undefined 推出的结论 SignalR 简单示例 通过三个DEMO学会SignalR的三种实现方式 SignalR推送框架两个项目永久连接通讯使用 SignalR 集线器简单实例2 用SignalR创建实时永久长连接异步网络应用程序
SignalR代理对象异常:Uncaught TypeError: Cannot read property 'client' of undefined 推出的结论 异常汇总:http://www ...
- 广州亿能自动化测试沙龙 - 自动化测试管理平台设计 [ 沙龙PPT免费下载 ]
广州亿能自动化测试沙龙 - 自动化测试管理平台设计 [ 沙龙PPT免费下载 ] http://automationqa.com/forum.php?mod=viewthread&tid=244 ...
- 使用appium做安卓手机web自动化测试 真机demo
一:appium相关环境搭建过程略. 二:连接真机: 1.手机(andriod 4.2.2)连接电脑,打开USB调试模式. 2.运行cmd 输入 adb devices -l 查看UDID,如图: 3 ...
- Appium之开发计算器自动化测试脚本Demo
1.依赖包 <!-- https://mvnrepository.com/artifact/io.appium/java-client --> <dependency> < ...
- appium自动化测试(三)
一. 层级定位和list 先通过find_element_by_XXX找到父级元素webelement,再通过webelement.find_element_by_XXX寻找子元素 二. 滑动屏幕 滑 ...
- Appium移动自动化测试(三)之元素定位
实验简介 做过UI自动化(web自动化, 移动自动化)的同学都会知道, 除去框架的选型和搭建以外, 落到实处的对元素进行定位就成了最重要的技能. 做过UI自动化的同学会知道, 对页面元素的定位方式有8 ...
- Appium原理初步--Android自动化测试学习历程
章节:自动化基础篇——Appium原理初步(第七讲) 本期关键词: Appium.跨语言跨平台.Bootstrap 主要讲解内容及笔记: 一.what is appium 一种封装了uiautomat ...
随机推荐
- 开机启动/etc/rc.local失效无效怎么办?解决方法
开机启动/etc/rc.local失效问题的解决方法 第一种情况:当centOS 随机启动文件 /etc/rc.local 失效时请按如下修改1.echo /etc/rc.local >> ...
- 重读C库之宏定义
1.如何编写头文件.h? //file--func1.h #ifndef __FUNC1_H //__func1_h //可小写可大写 #define __FUNC1_H //__func1_h .. ...
- 修改sql server实例、数据库、表、字段的排序规则
转自:http://blog.51cto.com/jimshu/1095780 概念与详情请参考:字符编码与排序规则:https://www.cnblogs.com/gered/p/9145123.h ...
- js颜色选择器 制作分析
给html元素设置事件监听, 触发事件 弹出颜色选择器 颜色选择器绘制 获取上次选择的颜色(当前颜色) 绘制渐变色板(canvas) (方法: 横轴渐变ff0000, ffff00, 00ff00, ...
- NHibernate应用开发
第一章:NHibernate入门 第一讲:NHibernate架构剖析 第二讲:搭建第一个NHibernate应用程序 第三讲:nhibernate.cfg.xml ...
- 微信小程序学习笔记(4)--------框架之逻辑层
逻辑层 逻辑层(App Service):小程序框架的逻辑层是由JavaScript编写的,逻辑层将数据进行处理后发送给视图层,同时接受视图层的事件反馈. App进行程序注册,Page进行页面注册 g ...
- cf100989b
http://codeforces.com/gym/100989/my B. LCS (B) time limit per test 0.25 seconds memory limit per tes ...
- java synchronized和(ReentrantLock)区别
原文:http://blog.csdn.net/zheng548/article/details/54426947 区别一:API层面 syschronized使用 synchronized即可修饰方 ...
- spring boot集成redis缓存
spring boot项目中使用redis作为缓存. 先创建spring boot的maven工程,在pom.xml中添加依赖 <dependency> <groupId>or ...
- WPF使用Expression Design设计图形
1.将画好的图形通过菜单导出成WPF xaml格式. 2.导出的文件就可以直接在WPF程序中使用了. 这里导出的DrawingBrush, <?xml version="1.0&quo ...