自动化测试技术解析:Appium、Sikuli与MonkeyTalk

news2024/10/6 10:36:42

 目录

 前言:

一、Appium自动化测试框架

它的优点是:

二、Sikuli自动化测试工具

它的优点是:

三、MonkeyTalk自动化测试工具

它的优点是:

四、代码样例

总结:


前言:

随着移动应用的普及,应用自动化测试变得越来越重要。在应用程序开发周期中,自动化测试已经成为一种必需的方式,以确保应用程序的可靠性和稳定性。应用程序自动化测试的最终目的是尽可能地降低错误率和测试上的投入成本。在本文中,我们将探讨一些可以用来简化App自动化测试的技术方案。

一、Appium自动化测试框架

Appium是一个开源的跨平台的自动化测试框架,支持Native,Hybrid和Web应用程序自动化测试。Appium通过使用WebDriver协议与移动端设备通信,可在iOS和Android系统上使用。

它的优点是:

1. 支持多种语言编写脚本,如Java,C #,Python,Javascript等。

2. 支持手势操作和滑动功能,如向左,向右,向上和向下,以及捏合,缩放和移动等。

3. 它可以在各种不同的模拟器和实际设备上进行测试,并且还可以与第三方的测试工具集成使用。

二、Sikuli自动化测试工具

Sikuli是一个使用Python语言编写的自动化测试工具,它主要用于GUI测试和Web测试。该工具通过图像匹配技术让用户可以在GUI或web应用程序上进行自动化测试,而不需要用户输入坐标等信息。

它的优点是:

1. 用户友好,仅需使用简单的命令即可自动执行。

2. 具有好的可调节性和变异性,从而增加其对测试环境的适应性。

3. 可在不同操作系统平台上使用。

三、MonkeyTalk自动化测试工具

MonkeyTalk是一个支持Android和iOS应用程序自动化测试的工具。它通过IDE将测试脚本录制或手动编写的方式实现自动化测试。

它的优点是:

1. 使用IDE录制脚本可以提高测试人员的效率。

2. 通过框架的集成可以事实的满足测试需求。

四、代码样例

我们通过使用Appium获取登录用户的账号和密码,以便实现自动化测试:

@Test
public void testLogin(){
    DesiredCapabilities capabilities =new DesiredCapabilities();
    capabilities.setCapability("deviceName","Android");
    capabilities.setCapability("platformVersion","9.0");
    capabilities.setCapability("app","/Users/appfile.apk");
    capabilities.setCapability("noReset","true");
    capabilities.setCapability("appPackage","com.app");capabilities.setCapability("appActivity","com.app.activity.MainActivity");
    WebDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
    driver.findElement(By.id("com.app.login_button")).click();
    driver.findElement(By.id("com.app.user_name")).sendKeys("tom");
    driver.findElement(By.id("com.app.password")).sendKeys("123456");
    driver.findElement(By.id("com.app.login_submit")).click();assertEquals(“success”,driver.findElement(By.id("result_text")).getText());
}

通过这个代码样例,我们可以看出在App自动化测试中,我们主要考虑的仍然是设备的版本、测试App、设备类型等策略,而Appium的API支持的越好,则我们自动化测试的成功率和测试效果就会越好。

总结:

在总结过程中,我们了解了应用自动化测试技术方案的几个常用工具和技术,并查看了一个针对特定功能的自动化测试样例。总之,自动化测试不仅可以提高生产效率和测试质量,同时也是实现持续集成和自动化部署的关键步骤,因此自动化测试技术能够支持我们的产品变化并使其稳定和可用。

【自动化测试交流】:574737577icon-default.png?t=N4HBhttp://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=POyiUtn1WmZ1mqQ0-QCVKk4v0ZaRxYel&authKey=oCQ13j212b4nl%2BGxagkWVDUMUwFeM0jV%2BId6X%2BEc6OguEZpRCScAdwLZbIm5pBEe&noverify=0&group_code=574737577自动化测试:

App自动化测试:

自动化测试福利: 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/552840.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

手把手教你通过PaddleHub快速实现输入中/英文本生成图像(Stable Diffusion)

近来,基于Diffusion的文图生成模型比较火,用户输入一句话,模型就可以生成一副对应的图像,还是很有意思的。本文记录了通过PaddleHub快速实现上述任务的过程,以供参考。 1、安装PaddlePaddle PaddleHub底层依赖于百度…

ChatGPT工作提效之生成开发需求和报价单并转为Excel格式

ChatGPT工作提效之生成开发需求和报价单并转为Excel格式 一、提出需求如何撰写百度地图标注开发的需求文档 二、针对性地连续提问推荐下一下百度地图标注文档的详细需求列表如何撰写百度地图标注开发的技术规范如何确定百度地图标注开发后的部署计划... 三、生成报价单四、运营…

【2023 · CANN训练营第一季】进阶班 应用开发深入讲解→模型推理

1 模型离线推理 各步要解析如下: Host&Device内存管理与数据传输: Host&Device上的内存申请与释放,内存间的相互拷贝;模型加载:将离线的om文件加载到Device上;在样例的资源初始化模块中进行。模型输入输出准备∶根据禹线om的输入输出,在Device…

微信小程序富文本组件mp-html

功能介绍 支持在多个主流的小程序平台和 uni-app 中使用支持丰富的标签(包括 table、video、svg 等)支持丰富的事件效果(自动预览图片、链接处理等)支持设置占位图(加载中、出错时、预览时)支持锚点跳转、…

【Linux】在Linux操作系统下对于权限的理解

目录 ❤️前言 正文 Linux下的不同用户 Linux的权限管理 文件访问者的分类 文件类型和访问权限 文件访问权限的修改方法 默认权限 目录权限 粘滞位 🍀结语 ❤️前言 大家好!今天这篇文章主要是关于Linux操作系统下对于各种权限的理解问题&#…

AI人工智能预处理数据的方法和技术有哪些?

AI人工智能 预处理数据 在人工智能(Artificial Intelligence,简称AI)领域中,数据预处理是非常重要的一环。它是在将数据输入到模型之前对数据进行处理和清洗的过程。数据预处理可以提高模型的准确性、可靠性和可解释性。 本文将…

Springboot +spring security,基于多种方式配置登录用户:memory、jdbc、MyBatis

一.简介 前面章节所有的用户信息(用户名和密码)都是基于配置文件配置的,这篇文章学习基于多种方式配置登录用户,比如: memory(内存)jdbcMyBatis 二.创建项目 如何创建一个SpringSecurity项目,前面文章已…

Python入门【序列、列表简介、列表的创建 、列表元素的增加、列表元素的删除 】(四)-全面详解(学习总结---从入门到深化)

👏作者简介:大家好,我是爱敲代码的小王,CSDN博客博主,Python小白 📕系列专栏:python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 📧如果文章知识点有错误…

微服务架构初探

大家好,我是易安!我们今天来谈一谈微服务架构的前世今生。 我们先来看看维基百科是如何定义微服务的。微服务的概念最早是在2014年由Martin Fowler和James Lewis共同提出,他们定义了微服务是由单一应用程序构成的小服务,拥有自己的…

chatgpt赋能Python-pythonfalse

PythonFalse: Python中的False值 在Python编程语言中,布尔(Boolean)是一种基本数据类型,它只有两个值:True和False。这篇文章将讨论Python中的False值,并提供有关如何使用它的指南。 什么是PythonFalse PythonFalse…

chatgpt赋能Python-pythongil

Python GIL(全局解释器锁)介绍 Python GIL 是全局解释器锁(Global Interpreter Lock)的简称,它是 Python 解释器中的一个重要概念。GIL 的作用是确保任何时间只有一个线程在执行 Python 指令,以防止多个线…

jsonmodels.model.base

欢迎来到猫子酱的学习之旅 jsonmodels.model创建模型用法验证 validate()验证器 Validators自定义验证器(**)默认值转换为Python结构(和JSON)为您的模型创建JSON模式(***) (结合Draft7Validator)结构和对象…

蓝桥杯单片机串口通信学习提升笔记

今日得以继续蓝桥杯国赛备赛之旅: 有道是 “不知何事萦怀抱,醒也无聊,醉也无聊,梦也何曾到谢桥。” 那我们该如何 让这位诗人纳兰 “再听乐府曲 ,畅解相思苦”呢? 那就建立起串口通信吧! 我…

论文阅读_音频表示_W2V-BERT

信息 number headings: auto, first-level 2, max 4, _.1.1 name_en: w2v-BERT: Combining Contrastive Learning and Masked Language Modeling for Self-Supervised Speech Pre-Training name_ch: W2V-BERT:结合对比学习和Mask语言建模进行自监督语音预训练 pape…

Redis实现全局唯一Id

Redis实现全局唯一Id 全局唯一Id简介二、Redis实现全局唯一Id实践2.1添加RedisIdWorker配置类2.2测试类 全局唯一Id简介 系统当中有些场景如果使用数据库自增ID就存在一些问题: id的规律性太明显受单表数据量的限制 场景分析:如果我们的id具有太明显的…

基于UDP和TCP套接字实现简单的回显客户端服务器程序

目录 1. 套接字 2. 基于UDP 套接字实现的简单客户端 服务器程序 3. 基于TCP套接字实现的简单客户端 服务器程序 1. 套接字 之前我们有分享到协议分层这个概念,其中就讲到上层协议调用下层协议,下层协议给上层协议提供支持,这里支持指的是就是socket套接字,它是操作系统给应用…

宁波市天一杯 --- Crypto wp

文章目录 secretrsa secret 题目: p134261118796789547851478407090640074022214132682000430136383795981942884853000826171189906102866323044078348933419038543719361923320694974970600426450755845839235949167391987970330836004768360774676424958554946…

坦克大战进阶--发射子弹

坦克大战进阶–发射子弹 1. 坦克大战0.3 1.1 分析 利用线程基础的知识,把坦克大战再次进阶一下:当我们按下J键,坦克就能够发射一颗子弹。 1.2 思路 当发射一颗子弹后,就相当于启动一个线程Mytank 有子弹的对象,当…

MSP432笔记5——外部中断

所用单片机型号:MSP432P401r 今日继续我的MSP432电赛速通之路。 外部中断是个很有用的配置 STM32几乎每个I/O口都能配置复用为外部中断 但MSP432并不是这样。 我经过查阅数据手册发现支持中断的引脚为: P1^0~ P1^7 P3^0~ P3^7 P5^0~ P5^…

Gateway服务网关入门

Gateway服务网关 Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等响应式编程和事件流技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。…