自动化测试之Appium

本文详细介绍了Appium自动化测试的各种问题与解决方案,包括华为手机开发者权限开启、Appium错误处理、元素定位方法和常见操作,以及Unittest单元测试框架的使用。还探讨了Appium在Android和iOS平台的工作原理,提供了环境搭建和元素定位工具的使用说明。此外,文章还涵盖了滑动滑块等复杂操作的实现和Appium在自动化实战中的应用。
摘要由CSDN通过智能技术生成

文章目录

问题归整

https://www.cnblogs.com/chaoyangya/p/9774614.html

1. 华为手机如何打开开发者权限

2. 报错,大意:编译器没有找到对应的“name”方法

  • appium1.5及以下版本支持name定位,v1.6+版本,统一都不支持 by_name元素定位方法!

3. 报错:大意:由于目标计算机积极拒绝,无法连接。

  1. 手机没有通过USB连接到电脑
  2. 手机连接到电脑上要关闭各种手机助手,不要安装手机管家,不要安装手机管家,不要安装手机管家。
  3. 没有启动appium
  4. USB连接后没有选择连接方式,要将连接方式 选择为“文件传输(NTC)”
  5. 代码中手机设备名称显示错误“adb devices”
  6. 可能是由于屏幕关闭的原因的造成的,所以要保持在case运行过程中,一定要让屏幕处于点亮状态

4. 报错,大意“不能通过定义的元素属性定位到元素”?

  1. 页面还没有跳转到对应界面,解决办法:添加time,sleep()
  2. 页面拥有该属性的元素不唯一,解决办法:改变定位元素方法

5.报错,大意: selenium无法创建一个session(会话),已有一个会话在进行中。

解决办法:

  1. 每执行一次脚本暂停一次appium连接,并清楚上次运行信息
  2. 关闭手机上上次已经运行过,但未关闭的应用进程

6.使用uiautomatorviewer 查看android某些页面元素,报错大意:获取页面层级出错

解决办法:

  1. 手机需要重启
  2. appium服务异常需要重新连接
  3. 可以尝试切换USB接口
  4. 最后可以把手机开发者选项的USB调试撤销权限,在重新获取
  5. 该app不支持该页面的截屏功能所以uiautomatorviewer捕捉不到

7. 如何从Excel中获取脚本元素

https://www.cnblogs.com/linyfeng/p/7123423.html

8. 如何实现,定位不到某个元素的时候代码提示?

  • 解决办法:使用捕获异常语句进行捕获异常。当需要对全部元素进行捕获的时候,需要将所有的元素写在“try:”语句下方。常用的方法建议写成一个工具类,对某个元素进行查找

check=driver.find_element_by_id("****")


def Check_element(self,check)
    try:
        check    
    except:
        print('获取元素失败')



9. 如何实现识别app的tocat?

10. 如何实现滑动滑块?

11. 关于appium不能输入汉字的问题?

  • send_keys 本质是点击键盘, setValue本质是给控件属性value赋值。能不能输入汉字跟机器安装的输入法有关
    -解决办法
desc = {
            "deviceName": "S000960221055",
            # "deviceName": "Z2X4C15C14015116",
            "platofromVersiom": "6.0.1",
            "platformName": "Android",
            "appPackage": "com.ynh.gjia.tt",
            "appActivity": "com.ynh.gjia.tt.WelcomeActivity",
            "unicodeKeyboard" :"True",# 脚本中需要输入汉字的时候必须指明这种输入法
            "resetKeyboard":"True",# 运行完成的时候回复默认之前输入法

        }

12. 脚本不能识别给定元素?

  • 原因:
    1. 给定的元素搜索信息标识不唯一
    1. app网络原因,没有添加思考时间,页面没有跳转就进行了识别

第一章 Apium初识

第一讲 Apium 概述

1 Appium简介

Appium是一个开源、跨平台的测试框架,可以用来测试原生及混合的移动端应用。Appium支持IOS、Android及FirefoxOS平台。Appium使用WebDriver的json wire协议,来驱动Apple系统的UIAutomation库、Android系统的UIAutomator框架。Appium对IOS系统的支持得益于Dan Cuellar’s对于IOS自动化的研究。Appium也集成了Selendroid,来支持老android版本。

Appium支持Selenium WebDriver支持的所有语言,如java、Object-C、JavaScript、Php、Python、Ruby、C#、Clojure,或者Perl语言,更可以使用Selenium WebDriver的Api。Appium支持任何一种测试框架。如果只使用Apple的UIAutomation,我们只能用javascript来编写测试用例,而且只能用Instruction来运行测试用例。同样,如果只使用Google的UIAutomation,我们就只能用java来编写测试用例。Appium实现了真正的跨平台自动化测试。

2 特点

  1. 使用自动化来测试一个app,且不需要重新编译它
  2. 写自动化case(用例),不需要学习特定的语言。
  3. appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web应用和混合应用。
“移动原生应用”是指那些用iOS或者 Android SDK 写的应用(Application简称app)。
“移动web应用”是指使用移动浏览器访问的应用(appium支持iOS上的Safari和Android上的 Chrome)。
“混合应用”是指原生代码封装网页视图——原生代码和 web 内容交互。比如,像 Phonegap,可以帮助开发者使用网页技术开发应用,然后用原生代码封装,这些就是混合应用。
  1. appium是一个跨平台的工具:它允许测试人员在不同的平台(iOS,Android)使用同一套API来写自动化测试脚本,增加了iOS和Android测试套件间代码的复用性。

第二讲 appiun与 Selenium

  • appium与Selenium
  1. appium类库封装了标准Selenium客户端类库,为用户提供所有常见的JSON格式selenium命令以及额外的移动设备控制相关的命令,如多点触控手势和屏幕朝向。
  2. appium服务端定义了官方协议的扩展,为appium用户提供了方便的接口来执行各种设备动作,例如在测试过程中安装/卸载App。这就是为什么我们需要appium特定的客户端,而不是通用的Selenium客户端.
  3. appium客户端类库只是增加了一些功能,而实际上这些功能就是简单的扩展了Selenium客户端,所以他们仍然可以用来运行通用的Selenium会话。

第三讲 appium工作原理

1. Android

在Android端,appium基于WebDriver协议,利用Bootstrap.jar,最后通过调⽤用UiAutomator的命令,实现App的自动化测试。

UiAutomator测试框架是Android SDK自带的App UI自动化测试Java库。另外由于UiAutomator对H5的支持有限,appium引入了chromedriver以及safaridriver等来实现基于H5的自动化。

appium 在android端工作流
client端也就是我们 test script是我们的webdriver测试脚本。中间是起的Appium的服务,Appium在服务端起了一个Server(4723端口),跟selenium Webdriver测试框架类似, Appium⽀持标准的WebDriver JSONWireProtocol。在这里提供它提供了一套REST的接口,Appium Server接收web driver client标准rest请求,解析请求内容,调⽤用对应的框架响应操作。

appium server会把请求转发给中间件Bootstrap.jar ,它是用java写的,安装在手机上.Bootstrap监听4724端口并接收appium 的命令,最终通过调⽤用UiAutomator的命令来实现。

最后Bootstrap将执行的结果返回给appium server。

appium server再将结果返回给 appium client。

2. ios

在IOS端,appium同样使⽤WebDriver的一套协议。

与Android端测试框架不同的是,appium ios封装了apple的 Instruments框架,主要用了Instrument里的UI Automation(Apple的⾃自动化测试框架),然后在设备中注⼊入bootstrap.js进⾏行监听。

appium 在ios端工作流
client端 依然是 test script是我们的webdriver测试脚本。

中间是起的Appium的

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值