App自动化测试持续集成效率提高50%

news2024/12/23 17:31:13

持续集成是一种开发实践,它倡导团队成员需要频繁的集成他们的工作,每次集成都通过自动化构建(包括编译、构建、自动化测试)来验证,从而尽快地发现集成中的错误。让正在开发的软件始终处于可工作状态,让产品可以快速迭代,同时还能保持高质量。

Jenkins 是基于 Java 开发的持续集成工具,开源免费,官网:https://jenkins.io/

App 自动化测试执行策略

自动化测试主要用于回归测试,我们可以制定执行策略:比如每天固定、开发代码更新后定时执行,这就需要与 Jenkins 进行集成。

Jenkins 集成 App 自动化测试问题点:

App 自动化需要用到真机或模拟器,而 Jenkins 一般是部署在服务器上面的,将真机或模拟器接入到服务器上显然是不可能。

解决方案:

  • 申请一台专门用于做自动化测试的本地电脑,部署自动化测试环境,连接本地的真机/模拟器

  • 在公司服务器(内部服务器 or 阿里云/腾讯云服务器)上部署 Jenkins

  • 利用 Jenkins master-slave 模式将任务下发给对应的本地电脑,在本地电脑上执行任务

具体步骤

需要注意的是:本地执行电脑需要配置好 JDK+Maven+Android SDK+Git 的环境,并且需要通过 adb 链接上设备。

Jenkins 主从模式(master-slave)使用:

添加 Node 节点

Manage Jenkins -> Manage Nodes and Clouds -> New Node

需要注意 Launch method 一定要开启 jenkins 的远程连接端口,否则 slave 从机无法连接上 Jenkins 服务。这种连接用的是 JNLP4 协议, 这种协议是在 WebSocket + TLS 的基础上封装而成的长连接协议。可以在 jenkins 的安全设置面板中开启:进入 Jenkins 首页-> 安全面板

连接 slave 从机 

两种方式都可以连接 slave 从机

 

任务配置中选择对应 slave 从机构建

可能碰到的问题 1:

D:\jenkins-slave\workspace\jenkins_maven_demo>mvn clean test
The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: JAVA_HOME should point to a JDK not a JRE

ERROR: Error cloning remote repo 'origin'  

hudson.plugins.git.GitException: Could not init D:\jenkins-

slave\workspace\jenkins_maven_demo

解决方案:在 slave 节点配置工具路径:

可能碰到的问题 2:

mvn not found

Jenkins slave 节点的环境变量中没有 maven 的导致的,解决方案:将 slave 机器上面的 PATH 环境变量复制到此处:

【整整200集】超超超详细的Python接口自动化测试进阶教程合集,真实模拟企业项目实战

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

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

相关文章

A6500-CC 9199-00120 基于时间或基于条件的工作流

A6500-CC 9199-00120 基于时间或基于条件的工作流 B-Scada宣布VoT(虚拟化事物),允许真实世界的对象和其他数据源在虚拟模型中表示,该模型可以从任意数量的不同来源检索实时数据。虚拟化支持在结构化环境中对这些对象进行实时监控和管理,该环境可以在任…

[杂谈]-快速了解LoRa和LoRaWAN

快速了解LoRa和LoRaWAN 文章目录 快速了解LoRa和LoRaWAN1、什么是LoRa2、什么是 LoRaWAN3、LoRa和LoRaWAN比较4、LoRa与其他无线技术比较5、为什么需要LoRaWAN6、LoRa的缺点7、LoRa联盟8、LoRaWAN标准9、LoRaWAN的应用 许多事物进一步推动工业物联网 (IIoT); 其中之…

Java 若依框架导出excel添加单表头标题

图示 若依框架通过Excel注解已经封装好导出的工具类了,目前是可以实现简单的单表表头标题添加 在exportExcel方法的后面直接添加一项参数就可以导出添加标题了~

ModaHub魔搭社区:星环科技向量数据库Hippo社区版来啦

大语言模型正在与企业应用迅速结合,并深刻改变企业的各个产业环节。而大模型训练所使用的数据包含了如文档、图片、音视频等各种类型的非结构化数据,传统关系型数据库能力有限。通过将这些非结构化数据转换为多维向量,可以结构化地在向量数据库中进行管理,实现高效的数据存…

DG232RL兼容FT232RL开发资料

芯片上处理的整个 usb 协议——不需要 usb 专用固件编程。 • uart 接口支持7或8个数据位、1或2个停止位和奇数/偶数/标记/空格/无奇偶校验。* 充分辅助的硬件或 x-on/x-off 软件握手。* 数据传输速率从300波特到3兆波特(RS422/RS485和 ttl 级) ,从300波特到1兆波特…

终于来啦!OpenDataLab 新增自主上传功能,升级CLI/SDK工具、数据集详情页……体验赠好礼~

9月,OpenDataLab 全新版本上线,支持用户自主发布原创数据集,同时升级了 CLI/SDK 工具、数据集详情页,让 AI 数据集开源更方便、展示更清晰。还有创作领好礼活动,快来看看吧! (注意!…

配电柜监控的真正标准,只有一个!

在现代社会中,电力是我们生活和工作不可或缺的一部分。大楼宾馆作为城市中繁忙生活的一部分,依赖于可靠的电力供应来支持各种设施和服务,从客房照明到电梯运行,无一不离电。然而,大楼宾馆电力分配系统的稳定性和安全性…

Java8新特性 - Lambda表达式

目录 一、Lambda表达式 1.1、为什么使用Lambda表达式? 1.2、Lambda的标准格式 Lambda的标准格式 无参无返回值的Lambda 有参有返回值的Lambda 1.3、Lambda的实现原理 1.4、Lambda省略模式 1.5、Lambda表达式的前提条件 1.6、Lambda与匿名内部类对比 1.7、…

AI智剪,批量剪辑视频的神器

在数字时代,视频剪辑已经成为各种行业中的重要工作。然而,传统的视频剪辑方式既耗时又费力,常常需要大量的时间和人力。幸运的是,随着人工智能技术的发展,我们有了新的解决方案——AI智剪软件。 AI智剪软件&#xff0c…

【gtpJavaScript】使用JavaScript实现套壳gtp与gtp打字输出效果

postman测试gtp接口 https://platform.openai.com/docs/api-reference/chat/create?langcurl 导入到postman中 记得弄一个gtp的key 然后请求测试gtp接口: 纯前端实现gtp请求页面 目录结构: 部分参考:GitHub - xxxjkk/chat-website: 简易版c…

德庄借助纷享销客CRM系统实现高效管理

德庄集团创于1999年,是一家集餐饮产业、食品产业、科技研发及文化研究为一体的现代化民营企业,下属9家子公司、2大现代化食品加工基地、1所研究所、1所培训学校、1个技术中心。拥有德庄、青一色、滟设、香漫谷、饭空等8大子品牌,呈现出良好的…

基于Python的大区域SPI标准降水指数自动批量化处理

1.引言 标准化降水指数(SPI)是一个广泛使用的指数,用于描述一系列时间尺度上的气象干旱的特征。但是经过研究发现,目前的处理方法基本都是单点进行计算,缺少多点(大区域)的批量计算过程。因此本…

嵌入式Linux开发实操(十六):Linux驱动模型driver model

嵌入式linux下驱动模型: 1、驱动的绑定 驱动程序绑定driver binding 驱动程序绑定是将设备device与可以控制它的设备驱动程序driver相关联的过程。总线驱动程序bus driver通常会处理,因为有特定于总线bus的结构来表示设备device和驱动程序driver。使用通用的设备device和设…

es倒排索引深入解读

文章目录 一. Lucene二.倒排索引算法2.1 Posting List压缩算法2.1.1 FOR2.1.2 RoaringBitmap压缩 2.3 FST压缩算法2.3.1 trie前缀树原理2.3.2 FST构建过程NFADFAFSMFSAFST:有限状态转换机构建原理FST在lucene中实现原理 1.什么是搜索引擎? 全文搜索引擎: 自然语言处理(NLP)、爬…

Full authentication is required to access this resource解决办法

我们在使用postman调接口时候,有的时候需要权限才可以访问,否则可能会报下面这个错误 {"timestamp": xxxxxx,"status": 401,"error": "Unauthorized","message": "Full authentication is requ…

Matlab信号处理1:模拟去除信号噪声

由于工作内容涉及信号系统、信号处理相关知识,本人本硕均为计算机相关专业,专业、研究方向均未涉及信号相关知识,因此需进行系统地学习。之前已将《信号与系统》快速过了一遍,但感觉较抽象且理解较浅显。在此系统地学习如何使用Ma…

PTA L1-011 A-B C++解法

我的答案 #include<iostream> #include <string> using namespace std;int main() {//先用数组去存储输入的A和B&#xff0c;然后遍历数组A&#xff0c;B&#xff0c;相同的字母去除&#xff0c;不同的字母留下&#xff0c;最后输出string A, B;getline(cin, A);g…

Nomad 系列-安装

系列文章 Nomad 系列文章 Nomad 简介 开新坑&#xff01;近期算是把自己的家庭实验室环境初步搞好了&#xff0c;终于可以开始进入正题研究了。 首先开始的是 HashiCorp Nomad 系列&#xff0c;欢迎阅读。 关于 Nomad 的简介&#xff0c;之前在 大规模 IoT 边缘容器集群管…

java IO流(二) 字符流 缓冲流 原始流与缓冲流性能分析

字符流 前面学习的字节流虽然可以读取文件中的字节数据&#xff0c;但是如果文件中有中文&#xff0c;使用字节流来读取&#xff0c;就有可能读到半个汉字的情况&#xff0c;这样会导致乱码。虽然使用读取全部字节的方法不会出现乱码&#xff0c;但是如果文件过大又不太合适。…

递归入门,例题详解,汉诺塔问题,全排列问题,整数划分问题,两数相加

问题一&#xff1a;阶乘 对于阶乘n!&#xff0c;也就是从1一直乘到n&#xff0c;我们可以很简单的使用一个for循环来解决这个问题&#xff0c;但是如果使用递归的思路&#xff0c;那么我们需要思考如果将当前的问题分解为规模更小的问题&#xff0c;对于n的阶乘&#xff0c;我…