AppiumLibrary移动APP测试
使用Genymotion模拟器结合RF执行
前提搭建环境参考《python_Appium测试环境搭建》文章详细介绍。
- 常用关键字
|
关 键 字 |
描 述 |
|
Click Button |
点击按钮 |
|
Click Element |
点击元素 |
|
Click Text |
点击文字 |
|
Input Text |
指定元素中输入文本 |
|
Swipe |
滑动屏幕 |
|
Get Text |
获取某标签内容 |
- 校验关键字
|
关 键 字 |
描 述 |
|
Element Name Should Be |
检查元素的name属性 |
|
Element Should Be Enabled |
检查元素是否可用/可见 |
|
Page Should Contain Element |
检查界面包含某些元素 |
|
Page Should Contain Text |
检查界面包含某些文字信息 |
|
Page Should Not Contain Element |
检查界面不包含某些元素 |
|
Page Should Not Contain Text |
检查界面不包含某些文字信息 |
- 等待关键字
|
关 键 字 |
描 述 |
|
Wait Until Page Contains |
等待直到界面中包含某些文字,才能执行下一步,默认等待5秒 |
|
Wait Until Page Contains Element |
等待直到界面中包含某些元素,才能执行下一步 |
|
Wait Until Page Does Not Contain |
等待直到界面中不包含某些文字,才进行下一步 |
|
Wait Until Page Does Not Contain Element |
等待直到界面中不包含某些元素,才进行下一步 |
● 需要官方下载注册账号下载安装完后,使用注册账号登录
● 点击Add可选择对应的模拟器版本号下载到本地,需要与SDK下载的android版本对应起来
● 这里android版本是8.0,下载模拟器API 26对应的8.0

● 点击Start,即可启动模拟器
● 首选的Genymoition模拟器,它具有运行速度快的优点

● 环境验证:adb devices

● 出现SDK版本号与模拟器版本不一致性,提示SDK的版本是41,模拟器版本是40
D:\android-sdk\platform-tools目录的adb.exe文件COPY到D:\Program Files\Genymobile\Genymotion\tools\目录替换掉旧的adb.exe即可

● 启动appium服务后,再启动模拟器,再验证环境,详见上图是OK了,说明成功连接到模拟器
1、执行计算器测试实例

● 查询手机系统的应用名称和activity信息
先在模拟器启动计算器,然后DOS窗口输入adb shell dumpsys window w|findstr \/| findstr name=
● 如下图可知:
com.android.calculator2就是应用名称
.Calculator就是appActivity

2、查看计算器控件元素及属性名
● 使用UI Automator工具可定位到控件属性名和值
Resource-id就是ID属性
Package就是包名

3、RF框架实现操作模拟器APP测试
● 这里以APP的球酷为例测试,先查看apk的信息,命令如下:
D:\Program Files\Genymobile\Genymotion\tools> aapt dump badging D:\demo\APP\球酷.apk
查找如下信息:
package: name='com.cool.app‘
launchable-activity: name='com.cwvs.jdd.StartupActivity'


▲ 如何键盘输入中文
方法:在open application参数最后,新增unicodeKeyboard=True resetKeyboard=True;不加入这两个参数时,中文无法输入。
4、RF框架实现操作模拟器APP测试
● 用例分层参考webUI设计,本次演示RF框架操作APP实例
● 初始化执行打开应用,前提条件需要加载资源文件=》系统关键字


AppiumLibrary移动APP测试的更多相关文章
- APP测试入门篇之APP基础知识(001)
前言 最近两月比较多的事情混杂在一起,静不下心来写点东西,月初想发表一遍接口测试的总结,或者APP测试相关的内容,一晃就月底了,总结提炼一时半会也整不完.放几个早年总结内部培训PPT出来 ...
- App测试
(1)App独特测试点: 客户端兼容性测试:系统版本.不同深度定制的rom.屏幕分辨率.中断测试.安装.卸载.升级.对其他程序的干扰等 需要的一些工具: appnium / lr / jmeter ...
- APP测试要点
APP测试的时候,建议让开发打好包APK和IPA安装包,测试人员自己安装应用,进行测试.在测试过程中需要注意的测试点如下: 1.安装和卸载 ●应用是否可以在IOS不同系统版本或android不同系统版 ...
- 安卓APP测试验证点总结
最近较懒,加之闺女出生后记忆没完全恢复,总是忘东忘西,关于安卓APP测试的验证点还是总结一下,方便设计测试用例时查阅,也给各位博友参考! 1.除APP的正常功能点外,还有以下验证点: 安装/卸载(考虑 ...
- 推荐书籍 -《移动App测试的22条军规》
在今天的博文中,博主希望给大家分享一本博主同事黄勇的最新利作:<移动App测试的22条军规>.黄勇是ThoughtWorks资深敏捷QA和咨询师.对于我来说,和黄勇在一起的工作的这个项目, ...
- APP测试流程
1 APP测试基本流程 1.1流程图 1.2测试周期 测试周期可按项目的开发周期来确定测试时间,一般测试时间为两三周(即15个工作日),根据项目情况以及版本质量可适当缩短或延长测试时间.正式测试前先向 ...
- 如何做好APP测试?
测试一个App具体包括哪些方面,以及每个方面有什么关键点呢? 测试人员常被看作bug寻找者,但你曾想过他们实际是如何开展测试的吗? 你是否好奇他们究竟都做些什么,以及他们如何在一个典型的技术项目中体现 ...
- app测试与web测试的区别
1.从功能测试的来讲的话,在流程和功能测试上是没有区别的.系统测试和一些细节可能会不一样. 那么我们就要先来了解,web和app的区别. web项目,一般都是b/s架构,基于浏览器的,而app则是c/ ...
- 摘抄——读《大话移动APP测试 Android与IOS》
用了两天读完了<大话移动APP测试 Android与IOS>,由于刚开始接触移动测试,技术型的篇章只能先放过了o(╯□╰)o,有以下内容觉得很有必要时不时的看看,来反思自己的工作,自勉!! ...
随机推荐
- java代码备份mysql数据库
编写bat文件 @echo off set "date_string=%date:~0,4%-%date:~5,2%-%date:~8,2%" set "time_str ...
- Linux监控服务并主动重启
Linux查询后台进程,如果没有进程号,则重启服务: #!/bin/sh basepath=$(cd ``; pwd) while true do procnum=`ps -ef|grep " ...
- linux命令详解——sed
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法 sed命令行格式为: se ...
- 什么是PAM认证
PAM(Pluggable Authentication Modules )是由 Sun 提出的一种用于实现应用程序的认证机制.其核心是一套共享库,目的是提供一个框架和一套编程接口,将认证工作由程序员 ...
- Linux useradd userdel groupadd groupdel gpasswd(组成员管理) id groups
添加用户 useradd [选项] 用户名 -u :指定UID标记号 -d:指定宿主目录,缺省为/home/用户名 -g:指定所属的基本组(组名或GID) -G: 指定所属的附加组(组名或GID) - ...
- Ubuntu 18.04 启动太慢不能忍
检查谁在搞鬼 $ systemd-analyze blame 结果 39.828s plymouth-quit-wait.service 39.311s apt-daily.service 30.93 ...
- 第七章 路由 75 路由传参-使用query方式传递参数
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- Linux磁盘分区的实用管理命令
系统环境:Centos6.7 命令信息: 1.lsblk 列出分区信息,可以查看分区的光在目录和使用情况 (读取内存中的分区表信息) 2.fdisk 用来创建MBR分区(也可以创建GPT分区,但是 ...
- OI视角浅谈布隆过滤器
简要谈及布隆过滤器 Preface 不负责的出题人扔了一道5e5,2M卡内存的题,标算布隆过滤器,然而std自己用std::set 70M碾过去了. 没学OI时候草草看过这个,不过忘得差不多了. 今天 ...
- [React] Always useMemo your context value
Have a similar post about Reac.memo. This blog is the take away from this post. To understand why to ...