一 简介

原生应用和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)相关推荐

  1. 移动端自动化测试工具 Appium 快速入门

    文章目录 一.前言 二.Appium 概述 1.架构图 2.UI 自动化收益 三.环境安装 1.桌面版本安装 2.DOS命令安装 3.安装SDK 四.常用操作方法 五.常见定位方式 1.ID 定位 2 ...

  2. APP移动端自动化测试工具选型“兵器谱”一览(主流开源工具)

    (下面大多数工具都是开源工具,在github,码云等开源平台都能找到) "测试那点事儿"在看到360旗下的测试团队整理的关于目前APP移动端自动化相关的工具,觉得总结的很到位,对目 ...

  3. Appium移动端自动化测试--搭建模拟器和真机环境一

    目录 模拟器--安装Android Studio及Android SDK 模拟器--更改VDM默认存储路径 真机(Android)环境设置 真机--开启开发者模式 真机-- 打开USB调试 真机连接- ...

  4. Python+Appium移动端自动化测试框架实现

    一.Appium 概述 1.Appium 简介 Appium是一个开源的自动化测试框架,可以用来测试基于iOS.Android和Firefox OS 平台的原生与混合的应用. 该框架使用Seleniu ...

  5. Appium移动端自动化测试(二):uiautomator2.0使用

    uiautomator2.0 其中appium1.5版本及以上.Android 5.0版本以上才支持 环境准备: 1. npm安装 npm install appium(安装后的版本一般都是最新的) ...

  6. windows端,C/S端自动化测试工具比较

    python库: 1.pyautoit通过捕获界面元素,也可通过坐标进行操作2.pyautogui通过获取图片坐标,使用鼠标和键盘进行操作资料地址:https://hugit.app/posts/do ...

  7. Android 手机自动化测试工具有哪几种?

    Android 手机自动化测试工具有哪几种? 3 条评论 分享 按投票排序按时间排序 28 个回答 78赞同 反对,不会显示你的姓名 知乎用户,https://github.com/truebit 孙 ...

  8. 常见自动化测试工具及框架的选用

    一.自动化测试简介 1.什么是自动化测试 软件测试是软件产品开发过程中不可或缺的环节,众所周知,软件测试的分类方法非常多,根据不同的分类,测试可以分为很多种不同的测试方式.如果根据不同的测试点分类,可 ...

  9. Python自动化测试工具有哪些?哪一个更适合你呢?

    目录 前言 Web UI test automation Web UI 自动化 Mobile test automation 移动端自动化测试工具 Windows UI test automation ...

最新文章

  1. 多线程编程 之 (生产者与消费者(N多))同步常用的方法。
  2. 测试1111111111111111111
  3. Javascript——说说js的调试
  4. 汇编--两种过程定义的方式,调用方式。
  5. mysql 货币显示_在MySQL中以正确的格式显示USD货币记录
  6. java oracle to date_用TRUNC和TO_DATE截斷oracle中的java格式化日期()
  7. 5动态显示图片_单片机入门 数码管的静态显示和动态显示 壁纸
  8. python进阶13并发之九多进程和数据共享
  9. 记录——《C Primer Plus (第五版)》第九章编程练习第三题
  10. 【论文总结】TextGCN
  11. 转 Spring是如何管理Hibernate和Struts的(二)
  12. 能被3整除的Fibonacci的下标号
  13. 使用迅捷pdf虚拟打印机可以将excel转换成pdf文件吗?
  14. List集合排序、自定义比较器排序
  15. LINUX下截图快捷方式
  16. 编程c语言黑与白,C语言黑与白问题
  17. .prevent 与 .stop,以及解决其他地方长按,文本被选中的问题
  18. Transact -SQL 语句
  19. 深发银行为什么要更名为平安银行?
  20. 研究生如何做好科研和发表文章

热门文章

  1. Reg文件和Bat文件
  2. IDC:全球物联网支出将在2019年达到1.3万亿美元
  3. puppet最新源码包安装学习笔记
  4. 拒绝亡羊补牢!SQL Server服务器安全防护!
  5. 【数据挖掘知识点五】层次聚类方法的理解
  6. 算法导论之NP完全性和近似算法
  7. 微信小程序使用高德地图API获取准确定位地址描述
  8. Nacos注册中心——启动相关的配置
  9. SQL优化—— 优化insert语句
  10. 自定义Realm实现认证