自动化测试之路 —— Appium输入及模拟手势

这篇具有很好参考价值的文章主要介绍了自动化测试之路 —— Appium输入及模拟手势。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

自动化测试之路 —— Appium输入及模拟手势

 
 

😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。
📡主页地址:【Austin_zhai】
🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。
💎声明:博主日常工作较为繁忙,文章会不定期更新,各类行业或职场问题欢迎大家私信,有空必回。

自动化测试之路 —— Appium输入及模拟手势

 
 

1.目的

  当今社会,人们的生活几乎已经无法离开各种各样的APP了,它提供给我们的便利与服务意义远远超出了其本身的软件价值。作为测试来说移动应用也早已是各大互联网公司的拳头产品,其本身的开发周期短,附属产品价值高等特性决定了今后的主导地位。

  那么在日常的测试活动中,移动应用的质量保障就成为了各个测试团队的主要课题,面对高速迭代的功能、日益缩短的项目周期、逐渐庞大的人力与资源投入,以上的这些因素都会让测试团队不得不在项目中加入自动化测试策略。

  Appium作为一个自动化移动应用测试框架来说,就可以很好的满足大部分移动应用测试的需求。作为当今仍然主流的自动化测试框架,各位测试同学要熟练的使用也就成为大家日常的基本内容之一。

 
 

2.说明

  1.此笔记的中所使用的操作系统为Win 10,笔记中所涉及的软件版本有可能会因为时间的推移而导致不匹配或其他额外的操作,请大家有针对性的选择阅读与参考。
  2.这里因操作系统关系,只针对安卓与鸿蒙OS来进行教程讲解,后续会推出iOS的相关Appium安装与配置、日常使用教程。
  3.本文是使用Python语言配合Appium进行讲解,其他语言相关教程不在此做赘述。

 
 

3.接上回

  前一篇我们已经熟悉了各种关于元素的定位方法,也基本掌握的各种方法的实际使用场景。既然是移动设备,就必定会有相关的键盘与屏幕操作,那接下去就为大家介绍这些相关的操作。

 
 

4.键盘操作

 

4.1 模拟输入

在APP中一般都会存在信息输入或交互框这类控件,如果需要往其中输入对应的测试数据,就需要用到send_keys()函数。

实现方法:

driver.find_element(AppiumBy.ID, 'com.tiffany.rta.debug:id/edt_customer_number').send_keys('00127')

 

如果要在控件中输入中文的话,则需要在Desired Capabilities中加入'unicodeKeyboard': True'resetKeyboard': True这两项参数;它们分别代表可以以unicode编码格式进行输入、初始化键盘状态。

 
 

4.2 模拟按键

另一种则是需要通过真实的按键或手机虚拟键盘进行输入框或交互框的测试数据输入,我们可以使用扩展方法pressKeyCode(),注意此函数只适用于Android。

实现方法:

driver.press_keycode(7)

 

与send_keys()不同,在使用模拟按键时,需要先将焦点放置于所需要交互的控件上。

driver.find_element(AppiumBy.ID, 'com.tiffany.rta.debug:id/edt_customer_number').click()

 
 

这里区分为两种键盘,一种是模拟手机的物理按键(菜单、Home、返回等),另一种是模拟键盘按键。分别对应driver.keyevent()driver.press_keycode()两种函数。

 

如果要使用对应的按键只需要在方法内填入相应的参数即可。
 
物理按键

自动化测试之路 —— Appium输入及模拟手势
 

另外需要模拟长按某些物理按键的话(长按电源、长按音量),就可以使用long_press_keycode()函数来进行操作。

 
 

控制按键
 
自动化测试之路 —— Appium输入及模拟手势

 
 

基本按键
 
自动化测试之路 —— Appium输入及模拟手势

 
 

5.模拟触控

 

5.1 模拟点击

除了click()以外,我们还可以使用tap()对一个元素或特定坐标进行点击操作。

 

实现方法:

driver.tap([(100, 200)], 500)

这里是根据屏幕的坐标来进行点击动作的,坐标用元组表示并且最多可以有5组这样的坐标,分别代表五个触点,最外部用列表来进行表示。列表后面的数字代表操作停留的时间,以毫秒为单位。另外由于这个方法使用坐标来进行操作,各类手机的屏幕大小又有所不同,坐标常常会发生偏移,导致定位失败,所以不推荐使用。

 
 

5.2 模拟按压

使用press()函数可以模拟手指在特定控件或区域进行按压的动作

 

实现方法:

使用前需要导入appium.webdriver.common.touch_action下的TouchAction包

t_driver.press(x=120, y=120).wait(1000).release()

以上代码相当于模拟按住指定坐标的元素后停顿1秒再放开的操作
另外这里依旧不推荐使用坐标来进行操作,如果可以定位元素的话就最好了。

element = driver.find_element(AppiumBy.ID, 'com.tiffany.rta.debug:id/edt_customer_number')
t_driver.press(element).wait(500).release()

 
 

另外还有wait(),move_to()等函数,顾名思义,都是一些基础模拟操作方法。
通过以上的实践,我们可以通过更多的函数组合出自己想要的测试步骤和动作,比如:

自动化测试之路 —— Appium输入及模拟手势

 

我们就可以使用图像验证识别+手势操作,进行图片识别验证操作。

t_driver.press(x=120, y=120).wait(2000).move_to(x=350, y=120).release()

这里需要注意的是如果多次使用move_to()函数,则要对应识别前一次操作的相对坐标而不是画面的绝对坐标。

 
 

5.2 模拟长按

与wait()不同的,appium还提供了long_press()函数。

 

实现方法:

element = driver.find_element(AppiumBy.ID, 'com.tiffany.rta.debug:id/edt_customer_number')
t_driver.long_press(element, duration=3000)

duration是长按的持续时间,默认为1000毫秒

 
 

6.注意点

1.做图像验证的长按拖拽时,如果上列的方法无法实现的话,可以尝试将press()替换为long_press()方法;

2.一般来说验证码滑块不需要切换frame(switch_to.frame),即使他是webview页面;

3.如果报错“AttributeError: ‘WebDriver’ object has no attribute”的情况,检查一下是否同时导入了Appium和Selenium下的webdriver,并且确保Appium的顺序要在Selenium之下。

 
 

以上就是appium提供的一些基础的模拟操作方法,我们日常还是需要多多的进行方法实践,来组合出最适合自己公司产品的测试脚本。文章来源地址https://www.toymoban.com/news/detail-400287.html

到了这里,关于自动化测试之路 —— Appium输入及模拟手势的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Appium 自动化测试

    1.Appium介绍 1,appium是开源的移动端自动化测试框架; 2,appium可以测试原生的、混合的、以及移动端的web项目; 3,appium可以测试ios,android应用(当然了,还有firefoxos); 4,appium是跨平台的,可以用在osx,windows以及linux桌面系统上; 2.Appium基本原理 在Android端,appium基于We

    2024年02月01日
    浏览(41)
  • Appium自动化(15) - 针对 webview 进行自动化测试

     🔥 交流讨论: 欢迎加入我们一起学习! 🔥 资源分享 : 耗时200+小时精选的「软件测试」资料包 🔥  教程推荐: 火遍全网的《软件测试》教程   📢 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! WebView是android中一个非常重要的控件 它的作用是用来展示一个web页面

    2024年04月10日
    浏览(49)
  • appium实现自动化测试原理

    目录 1、Appium原理 1.1、Android Appium原理图文解析 1.1.2、原理详解 1.1.2.1、脚本端 1.1.2.2、appium-server 1.1.2.3、中间件bootstrap.jar 1.1.2.4、驱动引擎uiautomator 1.2、 IOS Appium原理 执行测试脚本全过程: 1、测试脚本通过Json Wire Protocol协议以json格式将数据通过HTTP协议与appium-server之间进行

    2024年02月20日
    浏览(41)
  • 【python+appium】自动化测试

    python+appium自动化测试系列就要告一段落了,本篇博客咱们做个小结。 首先想要说明一下,APP自动化测试可能很多公司不用,但也是大部分自动化测试工程师、高级测试工程师岗位招聘信息上要求的,所以为了更好的待遇,我们还是需要花时间去掌握的,毕竟谁也不会跟钱过

    2024年02月14日
    浏览(34)
  • appium+python自动化测试

    1、aapt即Android Asset Packaging Tool,在SDK的build-tools目录下。该工具可以查看apk包名和launcherActivity 2、在android-sdk里面双击SDK-manager,下载buidl-tools 3、勾选build-tools,随便选一个版本,我这里选的是24的版本 4、下载完成后:在D:androidsdkandroid-sdk-windowsbuild-tools24.0.0目录下找到aapt.e

    2024年02月10日
    浏览(38)
  • 一文详解!appium自动化测试

    目录 前言: Appinum前置知识 Andriod SDK 元素获取—UI Automator adb命令实践 adb常用命令 小结 Package与Activity Activity页面布局元素 monkey简介 monkey事件 操作事件简介 monkey参数 事件类参数 约束类参数 调试类参数 Monkey参数应用综合案例 Monkey脚本API简介 monkey日志管理 monkeyrunner MonkeyR

    2024年02月11日
    浏览(44)
  • python+appium+夜神模拟器搭建app自动化环境

    目录 1.Appium用法 2.准备工具 1、安装JDK并配置JDK的环境变量 2、安装安卓SDK并配置SDK的环境变量。 3、安装夜神模拟器并在模拟器上安装被测app 4、安装并配置python 5、安装Node js 6、安装和配置Appium appium是做app的一个自动化框架,它的主要优势是支持android和ios,另外脚本语言也

    2024年02月07日
    浏览(49)
  • python+Appium实现手机移动端自动化 - 模拟器 或 真机【有线】

    有线连接真机,实现真机自动化?实现模拟器自动化?在这里,都能满足你的需求! 什么都不说了,直接上干货吧,亲测可用哦👇 首先,先介绍下所需的环境,如下: JDK1.8 Appium Python3.x Android-sdk 夜深模拟器/mumu模拟器(PS: 自动化真机时可以选择不安装) 1)下载 方式1:官

    2024年02月16日
    浏览(41)
  • 【APP自动化测试必知必会】Appium之微信小程序自动化测试

    H5 是指第 5 代 HTML ,也指用 H5 语言制作的一切数字产品。 所谓 HTML 是“超文本标记语言”的英文缩写。我们上网所看到网页,多数都是由 HTML 写成的。 “超文本”是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。而“标记”指的是 这些超文本必须由包含属性

    2024年02月09日
    浏览(92)
  • java APP自动化测试AppIum

    一、前言 二、Appium环境搭建 2.1 JDK安装 2.2 Android SDK安装配置 2.3 模拟器安装及配置 2.4 Appium Desktop安装及使用 2.5 Appium配置连接模拟器 三、实战基本脚本编写 3.1 创建Maven项目并配置 3.2 简单Demo 四、写在最后   一、 前言 随着移动互联网的发展,APP上面的测试逐渐的流行起来。

    2024年02月05日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包