appium 移动端自动化测试工具(4)
一 简介
原生应用和web应用
(1)原生应用是特别为某种操作系统开发的. (2)Web应用本质上是为移动浏览器设计的基于Web的应用. (3)混合应用大家都知道是原生应用和Web应用的结合体,採用了原生应用的一部分、Web应用的一部分,所以必须部分在设备上执行、部分在Web上执行。
appium架构
二 appium特点
三 工作原理
appnium-client选择python语言编写appium脚本,并行执行脚本.请求先经过appium-server服务端,通过解析和驱动移动设备虚拟机.
四 安装
http://appium.io/
双击下一步安装即可,
简单启动,设置host和port
点击start开启,界面如下
安装完成.
五 inspector (会话)配置
1 简介
获取安卓版本
获取设备信息
获取包名
adb shell dumpsys activity top | findstr “ACTIVITY”
active名字
方法二 获取包名和active名字
打开需要监听的软件,如考研帮,查看日志
保存session ,启用session 就可以进行app自动化测试.
六 考研app实战
要求:
账号:asdfghjkl0111 密码:********
工具
1 一台手机或者安卓模拟器2 uiautomatorviewer3 python
实战步骤
1 启动appium,查看设备配置信息,不启动session .
2 python 准备
1 安装 appium客户端
pip install Appium-Python-Client
2 必须保证appnium服务器启动,检测是否能正常驱动安卓软件,执行下面代码
#导入appium设备驱动器 from appium import webdriver#设置安卓设备配置信息(appium中的inspector参数) cap={"platformName": "Android","platformVersion": "5.1.1","deviceName": "127.0.0.1:62025","appPackage": "com.tal.kaoyan","appActivity": "com.tal.kaoyan.ui.login.LoginActivity","noReset": True }#实例化一个web驱动器 driver = webdriver.Remote('HTTP://127.0.0.1:4723/wd/hub',cap)
3 完整代码
#导入appium设备驱动器 import timefrom appium import webdriver#导入等待模块 from selenium.webdriver.support.ui import WebDriverWait#设置安卓设备配置信息(appium中的inspector参数) cap={"platformName": "Android","platformVersion": "5.1.1","deviceName": "127.0.0.1:62025","appPackage": "com.tal.kaoyan","appActivity": "com.tal.kaoyan.ui.activity.SplashActivity","noReset": True }#实例化一个web驱动器 driver = webdriver.Remote('HTTP://127.0.0.1:4723/wd/hub',cap)# *** 启动app耗时比较多,等待时间最好设置大一些 *** #如果存在跳过按钮,则获取跳过按钮 try:# WebDriverWait用于等待按键出现if WebDriverWait(driver,10).until(lambda x:x.find_element_by_xpath("//android.widget.TextView[@resource-id='com.tal.kaoyan:id/tv_skip']")):driver.find_element_by_xpath("//android.widget.TextView[@resource-id='com.tal.kaoyan:id/tv_skip']").click() except:pass#处理登录过程 try:#如果弹出登录界面,则登录if WebDriverWait(driver, 3).until(lambda x: x.find_element_by_xpath("//android.widget.Button[@resource-id='com.tal.kaoyan:id/login_login_btn']")):driver.find_element_by_xpath("//android.widget.EditText[@resource-id='com.tal.kaoyan:id/login_email_edittext']").send_keys('asdfghjkl0111')driver.find_element_by_xpath("//android.widget.EditText[@resource-id='com.tal.kaoyan:id/login_password_edittext']").send_keys('*********')time.sleep(0.5)driver.find_element_by_xpath("//android.widget.Button[@resource-id='com.tal.kaoyan:id/login_login_btn']").click() except:pass# #点击咨询if WebDriverWait(driver,10).until(lambda x: x.find_element_by_xpath("//android.support.v7.widget.RecyclerView[@resource-id='com.tal.kaoyan:id/date_fix']/android.widget.RelativeLayout[3]/android.widget.LinearLayout[1]/android.widget.ImageView[1]")):driver.find_element_by_xpath("//android.support.v7.widget.RecyclerView[@resource-id='com.tal.kaoyan:id/date_fix']/android.widget.RelativeLayout[3]/android.widget.LinearLayout[1]/android.widget.ImageView[1]").click()#获取设备的尺寸 def get_size():x=driver.get_window_size()['width']y=driver.get_window_size()['height']return x,yl= get_size() x1=int(l[0]*0.5) y1=int(l[1]*0.75) y2=int(l[1]*0.25)while True:#滑动刷新页面,点到点滑动方式(x1,y1)--->(x2,y2) driver.swipe(x1,y1,x1,y2)time.sleep(0.5)
知识点讲解
导入等待模块
from selenium.webdriver.support.ui import WebDriverWait
if WebDriverWait(driver,time).until(method
):
获取设备的尺寸
def get_size(): x=driver.get_window_size()['width'] y=driver.get_window_size()['height'] return x,y
活动页面
while True: #滑动刷新页面,点到点滑动方式(x1,y1)--->(x2,y2) driver.swipe(x1,y1,x1,y2) time.sleep(0.5)
显示等待:
指定一个等待条件,和一个最长等待时间,程序会判断在等待时间内条件是否满足,如果满足则返回,如果不满足会继续等待,超过时间就会抛出异常.
if WebDriverWait(driver,time).until(method):
隐式等待当使用了隐式等待执行测试的时候,如果 WebDriver没有在 DOM中找到元素,将继续等待,超出设定时间后则抛出找不到元素的异常, 换句话说,当查找元素或元素并没有立即出现的时候,隐式等待将等待一段时间再查找 DOM,默认的时间是0.
browser.implicitly_wait(10)#等待十秒加载不出来就会抛出异常,10秒内加载出来正常返回
转载于:https://www.cnblogs.com/angle6-liu/p/10815183.html
appium 移动端自动化测试工具(4)相关推荐
- 移动端自动化测试工具 Appium 快速入门
文章目录 一.前言 二.Appium 概述 1.架构图 2.UI 自动化收益 三.环境安装 1.桌面版本安装 2.DOS命令安装 3.安装SDK 四.常用操作方法 五.常见定位方式 1.ID 定位 2 ...
- APP移动端自动化测试工具选型“兵器谱”一览(主流开源工具)
(下面大多数工具都是开源工具,在github,码云等开源平台都能找到) "测试那点事儿"在看到360旗下的测试团队整理的关于目前APP移动端自动化相关的工具,觉得总结的很到位,对目 ...
- Appium移动端自动化测试--搭建模拟器和真机环境一
目录 模拟器--安装Android Studio及Android SDK 模拟器--更改VDM默认存储路径 真机(Android)环境设置 真机--开启开发者模式 真机-- 打开USB调试 真机连接- ...
- Python+Appium移动端自动化测试框架实现
一.Appium 概述 1.Appium 简介 Appium是一个开源的自动化测试框架,可以用来测试基于iOS.Android和Firefox OS 平台的原生与混合的应用. 该框架使用Seleniu ...
- Appium移动端自动化测试(二):uiautomator2.0使用
uiautomator2.0 其中appium1.5版本及以上.Android 5.0版本以上才支持 环境准备: 1. npm安装 npm install appium(安装后的版本一般都是最新的) ...
- windows端,C/S端自动化测试工具比较
python库: 1.pyautoit通过捕获界面元素,也可通过坐标进行操作2.pyautogui通过获取图片坐标,使用鼠标和键盘进行操作资料地址:https://hugit.app/posts/do ...
- Android 手机自动化测试工具有哪几种?
Android 手机自动化测试工具有哪几种? 3 条评论 分享 按投票排序按时间排序 28 个回答 78赞同 反对,不会显示你的姓名 知乎用户,https://github.com/truebit 孙 ...
- 常见自动化测试工具及框架的选用
一.自动化测试简介 1.什么是自动化测试 软件测试是软件产品开发过程中不可或缺的环节,众所周知,软件测试的分类方法非常多,根据不同的分类,测试可以分为很多种不同的测试方式.如果根据不同的测试点分类,可 ...
- Python自动化测试工具有哪些?哪一个更适合你呢?
目录 前言 Web UI test automation Web UI 自动化 Mobile test automation 移动端自动化测试工具 Windows UI test automation ...
最新文章
- 多线程编程 之 (生产者与消费者(N多))同步常用的方法。
- 测试1111111111111111111
- Javascript——说说js的调试
- 汇编--两种过程定义的方式,调用方式。
- mysql 货币显示_在MySQL中以正确的格式显示USD货币记录
- java oracle to date_用TRUNC和TO_DATE截斷oracle中的java格式化日期()
- 5动态显示图片_单片机入门 数码管的静态显示和动态显示 壁纸
- python进阶13并发之九多进程和数据共享
- 记录——《C Primer Plus (第五版)》第九章编程练习第三题
- 【论文总结】TextGCN
- 转 Spring是如何管理Hibernate和Struts的(二)
- 能被3整除的Fibonacci的下标号
- 使用迅捷pdf虚拟打印机可以将excel转换成pdf文件吗?
- List集合排序、自定义比较器排序
- LINUX下截图快捷方式
- 编程c语言黑与白,C语言黑与白问题
- .prevent 与 .stop,以及解决其他地方长按,文本被选中的问题
- Transact -SQL 语句
- 深发银行为什么要更名为平安银行?
- 研究生如何做好科研和发表文章