移动端自动化测试工具 Appium 之持续集成

文章目录

  • 一、背景
  • 二、前置条件
  • 三、代码部分
    • 1、pom.xml文件配置
    • 2、main入口代码
  • 四、Jenkins 部分
    • 1、下载Jenkins
    • 2、安装插件
    • 3、job配置
    • 4、选择构建
  • 五、工程目录
  • 六、报告示例
  • 七、总结

一、背景

持续集成是老生话谈的事情,用的好不好,看自己公司与使用场景,但做为测试开发一种技能还是有必要掌握,虽然大家不怎么做,话说技多不压身,今天咱们谈一谈咱们把 appium+maven+java+testng 集成到 jenkins 中去,并且然他 Jenkins 跑起来,配置邮件键默认大家会配置。

二、前置条件

  • 通过main启动testng.xml跑起整个项目
  • 编写一些用例
  • 本机有tomcat或者安装了Jenkins

三、代码部分

1、pom.xml文件配置

在这里插入图片描述

2、main入口代码

autotest.runbase.ExecMai

package appout;

import appout.utils.OperationalCmd;
import appout.utils.createTestngXml;
import org.testng.TestNG;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;

/**
 * @author 7DGroup
 * @Title: MainTest
 * @Description: 主方法
 * @date 2019/11/24 / 19:49
 */

public class MainTest {

    static Properties sysProperty = System.getProperties();
    private static final String ESCAPE_PROPERTY = "org.uncommons.reportng.escape-output";

    public static void main(String[] args) {

        //先执行kill
        OperationalCmd.killServer();
        //在启动服务
        OperationalCmd.startAppium();

        try {
            //执行的类
            createTestngXml.createTestngXml("appout.appcase.CartTest");
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.setProperty(ESCAPE_PROPERTY, "false");
        List<String> suites = new ArrayList<String>();
        System.out.println(suites);
        suites.add(sysProperty.getProperty("user.dir") + "/comsevenday/src/main/resources/appxml/mytestng.xml");
        TestNG tng = new TestNG();
        tng.setTestSuites(suites);
        tng.run();
    }
}

四、Jenkins 部分

1、下载Jenkins

部署成功并且启动成功,需要下载maven插件,邮件插件等信息。配置环境变量与其他信息,自己百度查下即可。

2、安装插件

在这里插入图片描述

邮件插件:

在这里插入图片描述

3、job配置

新建项目:
在这里插入图片描述
配置build选项:
在这里插入图片描述
在这里插入图片描述

注意:
简单配置上面选项即可,如果需要邮件,或者代码管理其他的自己选择配置,再这里就不介绍,保存上面选项;

4、选择构建

在这里插入图片描述
左边看见开始构建:
在这里插入图片描述
点击日志:
在这里插入图片描述
显示编译信息:
在这里插入图片描述
运行结束:
在这里插入图片描述
在这里插入图片描述
最后提示:
在这里插入图片描述

五、工程目录

在这里插入图片描述
大家看不到appium启动文件与工具类,因为我给他封装成jar包了,所以大家看不到。封装成jar给大家调用比较方便,而且工程看起来干净整洁。写测试用例同学不用关心怎么封装的,只有写测试用例即可。

六、报告示例

在这里插入图片描述

七、总结

总体上集成还是比较简单,关键是 pom 文件配置,工程怎么启动,还有 Jenkins 怎么配置。

相关系列:

  • 移动端自动化测试工具 Appium 快速入门
  • 移动端自动化测试 Appium 框架之数据驱动
  • 移动端自动化测试工具 Appium 之元素操作小技巧
  • 移动端自动化测试工具 Appium 之 main 启动
  • 移动端自动化测试工具 Appium 之自定义报告

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【链路层和局域网】

文章目录 链路层和局域网网络节点的连接方式数据链路层和局域网链路层导论链路层&#xff1a;上下文链路层服务链路层在哪里实现&#xff1f;适配器通信错误检测奇偶校验校验和&#xff1a;CRC&#xff08;循环冗余校验&#xff09;多点访问链路和协议多路访问协议MAC&#xff…

OpenNJet:引领下一代云原生应用引擎

文章目录 一、前言二、什么是OpenNJet 应用引擎三、OpenNJet的优势3.1 性能无损动态配置3.2 灵活的CoPilot框架3.3 支持HTTP/33.4 支持国密3.5 企业级应用3.6 高效安全 四、centos 安装4.1 生成njet.repo4.2 更新yum 缓存4.3 安装 njet 或 njet-otel 五、OpenNJet配置与部署5.1…

【Nginx <一>⭐️】Nginx 的初步了解以及安装使用

目录 &#x1f44b;前言 &#x1f440;一、 Nginx 介绍 &#x1f331;二、 安装使用 &#x1f49e;️ 三、 总结 &#x1f4eb;四、 章末 &#x1f44b;前言 小伙伴们大家好&#xff0c;前段时间主要在学习 Elasticsearch 相关的知识&#xff0c;花了两周的时间吧&#x…

【Linux系统编程】第十八弹---进程状态(上)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、操作系统进程 1.1、进程背景 1.2、进程如何在CPU上运行的&#xff1f; 1.2、进程状态 2、Linux的进程状态 2.1、如何描…

【VUE】VUE3绘制箭头组件

效果预览&#xff1a; 长、宽、粗细等等根据情况合理调整即可。 组件&#xff1a; <template><div class"line" :style"props.arrowsColor"></div> </template><script setup> import { defineProps, ref, onMounted } fr…

答辩PPT制作成本高?推荐3个aippt工具

这些网站我愿称之为制作答辩PPT的神&#xff01; 很多快要毕业的同学在做答辩PPT的时候总是感觉毫无思路&#xff0c;一窍不通。但这并不是你们的错&#xff0c;对于平时没接触过相关方面&#xff0c;第一次搞答辩PPT的人来说&#xff0c;这是很正常的一件事。一个好的答辩PPT…

【案例】使用Vue实现拖拽课表

效果展示 效果说明 点击左侧的课程并进行拖拽&#xff0c;拖拽到要开设本课程的地方然后松手&#xff0c;即可将本节课设置为当前所拖拽的科目并且背景色为当前科目的背景色&#xff0c;当多次拖拽到同一节课的时候将会实现后者覆盖前者的效果。 效果实现代码 第一步&#x…

【全开源】多功能投票小程序支持微信公众号+微信小程序+H5(源码搭建/上线/运营/售后/维护更新)

介绍 多功能投票小程序是一款基于FastAdminThinkPHPuniapp开发的一款多功能投票小程序。 ​用户友好与便捷性&#xff1a; 投票小程序界面简洁直观&#xff0c;操作简便&#xff0c;用户无需下载和安装额外的应用&#xff0c;即可在微信或其他平台上直接使用&#xff0c;大大提…

AI应用案例:会议纪要自动生成

以腾讯会议转录生成的会议记录为研究对象&#xff0c;借助大模型强大的语义理解和文本生成等能力&#xff0c;利用指令和文本向量搜索实现摘要总结、要点提取、行动项目提取、会议纪要生成等过程&#xff0c;完成会议纪要的自动总结和生成&#xff0c;降低人工记录和整理时间成…

基于uniapp+vue3+ts小程序项目实战之项目初始化

&#x1f680; 作者 &#xff1a;“二当家-小D” &#x1f680; 博主简介&#xff1a;⭐前荔枝FM架构师、阿里资深工程师||曾任职于阿里巴巴担任多个项目负责人&#xff0c;8年开发架构经验&#xff0c;精通java,擅长分布式高并发架构,自动化压力测试&#xff0c;微服务容器化k…

InstantStyle —— 文本到图像生成中的风格保持新突破

在人工智能领域&#xff0c;文本到图像生成&#xff08;Text-to-Image Generation&#xff09;技术正迅速发展&#xff0c;其应用范围从娱乐到专业设计不断扩展。然而&#xff0c;风格一致性生成一直是该领域的一个技术难题。最近&#xff0c;InstantX团队提出了一种名为Instan…

flutter开发实战-本地SQLite数据存储

flutter开发实战-本地SQLite数据库存储 正在编写一个需要持久化且查询大量本地设备数据的 app&#xff0c;可考虑采用数据库。相比于其他本地持久化方案来说&#xff0c;数据库能够提供更为迅速的插入、更新、查询功能。这里需要用到sqflite package 来使用 SQLite 数据库 预…

网络工程师----第二十五天

计算机基础 第二章&#xff1a;物理层 物理层的功能&#xff1a;怎样在连接各种计算机的传输媒体上传输数据比特流&#xff0c;屏蔽不同传输媒体和通信手段的差异。 传输媒体接口的特性&#xff1a; 机械特性&#xff1a;接口所用接线器的形状和尺寸、引脚数目和排列、固定…

6. 神经网络的内积

目录 1. 准备知识 1.1 NumPy 的多维数组 1.2 矩阵乘法 1.2.1 矩阵乘法顺序 1.2.2 矩阵乘法范例 2. 神经网络的内积 2.1 使用场合 2.2 Python 实现 1. 准备知识 1.1 NumPy 的多维数组 大家应该对多维数组都很熟悉&#xff0c;我不再多言。在 NumPy 模块中&#xff0c;…

PXI/PXIe规格1553B总线测试模块

面向GJB5186测试专门开发的1553B总线适配卡&#xff0c;支持4Mbps和1Mbps总线速率。该产品提供2个双冗余1553B通道、1个测试专用通道、2个线缆测试通道。新一代的TM53x板卡除了支持耦合方式可编程、总线信号幅值可编程、共模电压注入、总线信号波形采集等功能外&#xff0c;又新…

添砖Java之路(其四)——面向对象的编程,类和对象

目录 前言&#xff1a; 面向对象的编程&#xff1a; this关键字&#xff1a; 构造方法&#xff1a; 前言&#xff1a; 其实中间我还有很多地方没有去讲&#xff0c;因为我觉得里面的很多东西和c/c差不太多&#xff0c;就比如逻辑运算&#xff0c;方法重载&#xff0c;以及数…

【数据结构】 二叉树的顺序结构——堆的实现

普通的二叉树是不适合用数组来存储的&#xff0c;因为可能会存在大量的空间浪费。而完全二叉树更适合使用顺序结构存储。现实中我们通常把堆(一种二叉树)使用顺序结构的数组来存储 。 一、堆的概念及结构 父节点比孩子结点大 是大堆 父节点比孩子结点小 是小堆 堆的性质 堆中某…

SpringBoot设置默认文件大小

1、问题发现 有个需求&#xff0c;上传文件的时候&#xff0c;发现提示了这个错误&#xff0c;看了一下意思是说&#xff0c;文件超过了1M。 看我们文件的大小&#xff1a; 发现确实是&#xff0c;文件超出了1M&#xff0c;查了一下资料&#xff0c;tomcat默认上传文件大小为1M…

2024龙年新版ui周易测算网站H5源码/在线起名网站源码/运势测算网站系统源码

更新日志 1、修复时间不能选择子时; 2、部分机型支付后不跳转; 3、新增后台支持按照时间、项目、进行订单筛选查询; 4、数据库新增测算结果的纳音、藏干、感情、性格分析; 5、微信支付支持https证书; 6、修复PC端扫码支付问题; 7、新增代理分销功能; 8、新增会员功能&a…

如何把小程序视频下载保存

在这个快节奏的数字时代&#xff0c;小程序已成为我们生活的一部分&#xff0c;而那些在小程序中流转的精彩视频&#xff0c;常常让我们驻足。想象一下&#xff0c;如果能够将这些瞬间的精彩捕捉下来&#xff0c;让它们不再只是屏幕上的一抹流光&#xff0c;而是成为你个人收藏…