广告
返回顶部
首页 > 资讯 > 精选 >移动开发中自动化测试的示例分析
  • 221
分享到

移动开发中自动化测试的示例分析

2023-06-04 23:06:07 221人浏览 八月长安
摘要

小编给大家分享一下移动开发中自动化测试的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、自动化测试的概念自动化测试是把以人为驱动的测试行为转化为机器执行

小编给大家分享一下移动开发自动化测试的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

一、自动化测试的概念

自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。

二、适用自动化测试的项目特征

移动开发中自动化测试的示例分析

三、软件测试的分类

  • 按项目流程:单元测试、集成测试、系统测试、回归测试、验收测试

  • 按技术:黑盒测试、白盒测试、灰盒测试

  • 按功能:逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试

  • 按性能:时间性能测试、空间性能测试

  • 按自动化:功能自动化、性能自动化

项目流程 + 自动化 → 分层测试:unit测试(单元测试)、service测试(接口测试)、UI测试

移动开发中自动化测试的示例分析

四、自动化测试的现状

1、单元测试(极限编程-测试驱动开发),占比70%
(1)对软件中最小可测试单元进行检查和验证
(2)由开发人员编写,检验测试单元的语义是否正确
(3)一般在构建阶段执行自动化测试脚本
(4)代表工具:XUnit等

2、接口测试,占比20%
(1)测试系统组件间接口的测试
(2)主要是保证接口的正确和稳定
(3)代表工具:jmeter、Postman等

3、UI测试,占比10%
(1)验证布局是否合理、风格是否一致等等
(2)确保UI功能内部的对象符合预期
(3)代表工具:selenium、robot framework等

4、小结
(1)单元测试借助对应语言的测试框架,可以做到在构建时执行测试脚本,难度较小
(2)接口测试通过定义好每个用例的输入和输出,借助接口测试工具,也可以实现自动化,难度不大
(3)UI测试更多是与界面渲染相关的,包括元素的位置、大小是否正确,元素内容是否正确等等,主要是对界面渲染后的结果进行测试

五、不同端上的UI自动化测试

要判断渲染界面是否满足预期,首先就需要具备操控终端界面的能力,通过定位元素获取元素的信息与预期结果比较。

注意:这仅仅属于功能性测试的范畴,如果包括多媒体内容的话,还需要借助其他手段进行比较。

而操控终端界面的能力也随终端的不同而不同,这里主要是PC端和移动端的区别。

1、PC端:

每个浏览器厂商都会提供相应的driver,它们都实现了Selenium定义的WebDriver's wire protocol,通过这个协议可以操控浏览器做任何事情!

这个driver会启动基于这个协议的WEB服务,实际上就是在一个端口上监听Http请求,根据不同的请求执行不同的操作。

移动开发中自动化测试的示例分析

代表框架:

移动开发中自动化测试的示例分析

以Selinium为例,实现原理如下:

移动开发中自动化测试的示例分析

2、移动端:

与PC端上原理类似,但又有Android与IOS的区别

Android:主要基于UIAutomator和UIAutomator2,更早的可以追溯到instrumentation框架。
(1)instrumentation可以把测试包和目标测试app加载到同一个进程中运行,以此实现对app的控制。

之后封装形成Selendroid架构

移动开发中自动化测试的示例分析

(2)UIAutomator是谷歌在Android4.1版本发布时推出的基于Java编写的UI测试框架,与Bootstrap配合使用。
其特点是可以跨进程操作,可以获取屏幕上任意一个app的任意一个控件属性并对其操作。
但不足的是只能用Java编写,且测试脚本必须上传到设备上运行。

(3)UIAutomator2修复了原有版本的bug,还增加了很多新功能

  • 设备和开发机可以脱离数据线,通过WiFi互联(基于atx-agent)

  • 集成了openstf/minicap达到实时屏幕投频,以及实时截图

  • 集成了openstf/minitouch达到精确实时控制设备

  • 修复了xiaocong/uiautomator经常性退出的问题

  • 代码进行了重构和精简,方便维护

  • 实现了一个设备管理平台(也支持iOS) atxserver2

移动开发中自动化测试的示例分析

IOS:主要基于UIAutomation,Xcode 7之后引入UITesting

(1)通过UIAutomation操作app时,UIAutomation会给app发送WM_GETOBJECT的消息
如果app处理WM_GETOBJECT消息,实现了UIAutomation Provider,并调用了下面的函数,则该app支持UiaReturnRawElementProvider(HWND hwnd, WPARAM wparam, LPARAM lparam, IRawElementProviderSimple *el)
IRawElementProviderSimple就是UIAutomation Provider,包含了控件的各种信息,如Name,ClassName,坐标等。
因此,app想要支持自动化,就必须实现UIAutomation Provider,详情请参看《UI Automation Client Programmer's Guide》

(2)UITesting是苹果公司推出,在Xcode 7引入的UI自动化测试框架,其原理利用了IOS的Accessibility

  • Xcode 自带,不需要搭建环境

  • 支持 OC、Swift,学习成本低

  • 支持 WebView 测试

  • 稳定性好

六、常用的移动端自动化测试框架

下图列举了一部分测试框架在一些指标上的表现,除了这些,还有Robot framework、阿里的Macaca框架等也可考虑。

移动开发中自动化测试的示例分析

七、移动端自动化测试的具体实现

一千个嘴把式,不如lai个手把式!

下面这一段自动化测试脚本代码基于Appium实现了在app里截屏的功能:

移动开发中自动化测试的示例分析

当然,除了写好测试脚本以外,还有很多工作需要准备

  1. usb要连接好设备,设备需要打开开发者模式

  2. 安装好目标测试app的debug包

  3. 检查chromeDriver的驱动版本是否与设备匹配

  4. 可能遇到其他未知问题......

下面是基于Robot framework的自动化测试脚本片段

移动开发中自动化测试的示例分析

八、移动端自动化测试的探索

1、基于数据驱动的自动化测试 →  基于关键字驱动的自动化测试。

从以上具体实现中可以看出,要针对一个测试用例编写出对应的测试脚本,这需要的代码量不算少,并且还需要对每个方法的定义和输入输出十分熟悉。

因此,要实现UI层面的自动化测试,成本很高,甚至超过了收益。

所以,如果可以让测试脚本的编写变的简单,那么将大大改善现状。

2、探索

仔细观察上述具体实现,可以发现,一个测试脚本是可以由多个测试用例组成,而每一个测试用例又可以是由多条语义清晰的指令构成的。

于是这就可以考虑对其进行抽象,这也是策略模式的一种具体应用,主要包括三个方面:

  1. 界面元素名与测试内部对象名的分离。

    将界面上的所有元素映射成相对应的一个逻辑对象,测试针对这些逻辑对象进行,界面元素的改变只会影响映射表,而不会影响测试。

  2. 测试描述与具体实现细节的分离,把测试描述和测试的具体实现细节分离开来。

    测试描述只说明软件测试要做什么以及期待什么样的结果,而不管怎样执行测试或怎样证实结果。

    这样做是因为测试的实现细节通常与特定的平台以及特定的测试执行工具有着密切的联系。

    这种分离使得测试描述对于应用实现细节是不敏感的,而且有利于测试在工具和平台间的移植。

  3. 脚本与数据的分离。

    把测试执行过程中所需的测试数据从脚本中提取出来,在运行时测试脚本再从数据存放处读取预先定制好的数据,这样脚本和数据可以独立维护

如下所示为一个基于关键字驱动的指令模型映射表

移动开发中自动化测试的示例分析

九、移动端UI自动化测试的展望

一个完整的移动端UI自动化流程应该是包括功能和视觉两部分内容的。

在功能方面,尽管利用一些主流框架可以实现自动化,但编写脚本的成本依然很大并且很复杂。

在视觉方面,更是需要依赖图像识别、图像相似度匹配、音频匹配等等技术手段。

所以,目前针对移动端UI的自动化测试还是困难重重,并没有一个成熟的解决方案。

传统测试技术 →  基于AI的测试技术

从AI在围棋界接连击败李世石、柯洁开始,AI技术逐步影响着人类社会的方方面面。

而自动化测试也慢慢朝AI的方向在发展,基于深度学习,通过迭代训练,让机器自己做出决策,最终完成操作。

比较具有代表性的AI自动化测试实践有爱奇艺团队的Aion测试框架、腾讯游戏QA团队的AI自动化测试系统。

相信在不久的将来,借助AI的力量,自动化测试将会变的越来越简单!

以上是“移动开发中自动化测试的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: 移动开发中自动化测试的示例分析

本文链接: https://www.lsjlt.com/news/240300.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 移动开发中自动化测试的示例分析
    小编给大家分享一下移动开发中自动化测试的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、自动化测试的概念自动化测试是把以人为驱动的测试行为转化为机器执行...
    99+
    2023-06-04
  • selenium自动化测试的示例分析
    本篇文章为大家展示了selenium自动化测试的示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。下载驱动器http://chromedriver.storage.googleapis.com/...
    99+
    2023-06-26
  • Angular.js自动化测试之protractor的示例分析
    小编给大家分享一下Angular.js自动化测试之protractor的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前...
    99+
    2022-10-19
  • Puppeteer前端自动化测试的示例分析
    这篇文章主要为大家展示了“Puppeteer前端自动化测试的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Puppeteer前端自动化测试的示例分析”这...
    99+
    2022-10-19
  • Python中Selenium自动化浏览器测试的示例分析
    小编给大家分享一下Python中Selenium自动化浏览器测试的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Python之Selenium(自动化浏览...
    99+
    2023-06-29
  • python自动化测试selenium定位frame及iframe的示例分析
    小编给大家分享一下python自动化测试selenium定位frame及iframe的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!frame标签有frameset、frame、iframe三种,frameset和...
    99+
    2023-06-25
  • 移动端开发1px线的示例分析
    这篇文章将为大家详细讲解有关移动端开发1px线的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1px线变粗的原因在做移动端项目时,常常是根据设计图设置元素节点的大小和样式,但是有时候根据设计图写出...
    99+
    2023-06-08
  • 移动前端开发之viewport的示例分析
    小编给大家分享一下移动前端开发之viewport的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在移动设备上进行网页的重...
    99+
    2022-10-19
  • web移动开发知识点的示例分析
    小编给大家分享一下web移动开发知识点的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 1、生命周期调用函数 常见的...
    99+
    2022-10-19
  • Pytest接口自动化测试框架搭建模板的示例分析
    小编给大家分享一下Pytest接口自动化测试框架搭建模板的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!auto_api_test开发环境: Pychar...
    99+
    2023-06-14
  • 前端开发中移动端适配的示例分析
    这篇文章主要介绍了前端开发中移动端适配的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、百分比使用场景:只要求宽度随屏幕自适应,比如文字块百分比在PC端自适应上也经...
    99+
    2023-06-08
  • python自动化测试通过日志3分钟定位bug的示例分析
    这篇文章主要为大家展示了“python自动化测试通过日志3分钟定位bug的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python自动化测试通过日志3分钟定位bug的示例分析”这篇文章...
    99+
    2023-06-25
  • HTML5在移动开发方面发展的示例分析
    小编给大家分享一下HTML5在移动开发方面发展的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!两种看法当人们讨论移动设备上的HTML5技术时,他们通常只会...
    99+
    2023-06-08
  • python自动化测试中APScheduler Flask的应用示例
    目录使用背景什么是 APScheduler 框架?APScheduler 框架包含四个组成部分APScheduler 在 flask 中使用编写任务函数,开始 APScheduler...
    99+
    2022-11-11
  • 移动web开发之touch事件的示例分析
    这篇文章主要介绍移动web开发之touch事件的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!前面的话iOS版Safari为了向开发人员传达一些特殊信息,新增了一些专有事件。...
    99+
    2022-10-19
  • Python接口测试自动化的示例代码
    本篇内容主要讲解“Python接口测试自动化的示例代码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python接口测试自动化的示例代码”吧!1、接口请求python 特别是 python 3....
    99+
    2023-06-16
  • vue中移动端自适应的示例分析
    这篇文章给大家分享的是有关vue中移动端自适应的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。方案1:直接引入js  (自己 写的动态改变fontsize的js...
    99+
    2022-10-19
  • idea自带Jacoco/idea自动测试语句覆盖率的示例分析
    这篇文章主要介绍了idea自带Jacoco/idea自动测试语句覆盖率的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、准备工作首先你肯定必须要有测试的项目,这个是...
    99+
    2023-06-14
  • shell脚本自动化的示例分析
    这篇文章主要介绍shell脚本自动化的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!将某文件远程拷贝到指定ip机器上的指定目录下:./scp_file.sh /tmp/xx....
    99+
    2022-10-19
  • 如何处理PHP开发中的单元测试和自动化测试
    随着软件开发行业的日益发展,单元测试和自动化测试成为了开发者们重视的环节。PHP作为一种广泛应用于Web开发的脚本语言,单元测试和自动化测试同样也在PHP开发中扮演着重要的角色。本文将介绍如何处理PHP开发中的单元测试和自动化测试,并提供一...
    99+
    2023-10-21
    自动化测试 单元测试 PHP开发
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作