接口自动化测试实战:JMeter+Ant+Jenkins+钉钉机器人群通知完美结合

news2024/11/11 4:48:55

目录

前言

一、本地JAVA环境安装配置,安装JAVA8和JAVA17

二、安装和配置Jmeter

三、安装和配置ant

四、jmeter + ant配置

五、jenkins安装和配置持续构建项目

文末福利


前言

     搭建jmeter+ant+jenkins环境有些前提条件,那就是要先配置好java环境,本地java环境至少是JDK8及以上版本,最好是JAVA11或者JAVA17等较高的java环境,像jenkins这种持续构建工具基本都在向上兼容JAVA的环境,以前的JAVA8或者以下版本可能在运行jenkins等时可能会有异常导致执行失败或者提示java版本太低需要更新版本等,建议本地电脑环境装两套JAVA环境,一个JAVA8、一个JAVA17,需要使用时根据配置的环境变量即可切换JAVA版本

jmeter:开源接口和压力测试工具,基于java开发,运行需要java环境

ant:Apache Ant是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。Ant运行时需要一个XML文件(构建文件),运行需要java环境

jenkins: Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成,运行需要java环境

一、本地JAVA环境安装配置,安装JAVA8和JAVA17

分别下载JAVA8和JAVA17版本,JAVA官网下载,地址:

Java Downloads | Oracle

按如上地址选择下载JDK17,windows版本安装即可,JAVA8历史版本安装自行下载安装即可

如我本地已经安装了JDK8和JDK17,安装路径如下:

本地安装完毕JAVA8和JAVA17后,为了能切换两个版本,需要分别配置如下环境变量:

  1. 变量名:JAVA_HOME  值:%JAVA_HOME17%,若需要切换为JAVA8,将值改为:%JAVA_HOME8%即可

  1. 变量名:JAVA_HOME8  值:C:\Program Files\Java\jdk1.8.0_91,值是本地JAVA8的安装路径

  1. 变量名:JAVA_HOME17  值:C:\Program Files\Java\jdk-17,值是本地JAVA17的安装路径

  1. 变量名:CLASSPATH 值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%ANT_HOME%\lib;

  1. 变量名:PATH ,将值:%JAVA_HOME%\bin移动到最前面即可

如上环境变量配置完毕后,打开cmd,查看JAVA当前版本,出现如下即可:

如上是显示当前环境是JAVA17,若切换到JAVA8,修改变量名:JAVA_HOME 将值改为:%JAVA_HOME8%,然后再次打开cmd查看JAVA运行版本:

二、安装和配置Jmeter

官网下载安装,安装后配置能正常启动jmeter的GUI界面即可进行接口和脚本开发

三、安装和配置ant

ant下载地址:Apache Ant - Welcome

下载最新的ZIP压缩包即可,如下图:

版本:1.10.13官网明确说明了需要JAVA8及其以上的运行环境,JAVA环境低于JAVA8的需要升级

下载后在本地指定路径下下解压后,配置环境变量,配置如下:

ANT_HOME:F:\apache-ant-1.10.13-bin\apache-ant-1.10.13

path:%ANT_HOME%\bin;

classpath:%ANT_HOME%\lib;

配置完后,cmd窗口查看ant版本,显示如下即ant安装ok

四、jmeter + ant配置

  1. 将**apache-jmeter-5.4.1\extras下面的ant-jmeter-1.1.1的jar包到ant的lib目录,如下图:**

  1. 在本地一个磁盘路径下,新建一个xml文件:build_test.xml,如我的路径:D:\apache-jmeter-5.4.1\test

xml文件,内容如下:

xml文件中指定内容按实际的配置修改即可

同时也将需要执行的jmx脚本文件放置在该目录下

  1. 修改jmeter下jmeter.properties配置

jmeter.properties配置文件路径:D:\apache-jmeter-5.4.1\apache-jmeter-5.4.1\bin

将jmeter.save.saveservice.output_format=csv修改为:jmeter.save.saveservice.output_format=xml

  1. cmd窗口运行

cmd切换到xml文件的目录下,执行命令:ant -buildfile build_test.xml

执行结果显示构建成功,即jmeter和ant环境配置ok

构建成功后,会在xml文件所在的目录下生成html和jtl的文件,如下图:

html文件可以直接浏览器打开查看测试报告,jtl文件就是jmeter的聚合报告数据文件,可以使用jmeter加载打开jtl文件查看聚合报告

看一下对应的测试报告:

五、jenkins安装和配置持续构建项目

  1. 安装jenkins

jenkins官网下载安装:Jenkins download and deployment,选择windows版本

安装过程中有个端口和JDK运行环境设置,设置的端口不被系统服务占用即可

安装完毕后,浏览器输入:http://localhost:8080,访问jenkins

第一次访问jenkins需要解锁,管理员密码在日志文件可以查看到

拷贝到密码输入框即可,登录后的效果:

  1. 安装相应的插件

进入插件管理页面,切换到第二个菜单

安装插件:

DingTalk    -----------发送钉钉消息的插件

HTML Publisher plugin   ---------生成可视化html测试报告的插件

Ant In Workspace    -------------ant构建配置插件

安装完毕后,查看第三个菜单,查看已安装的插件,

安装完毕插件后,最好重启一下jenkins,后面jenkins构建配置才能选择对应的插件,重启jenkins只需要在浏览器jenkins服务端口后面加上restart回车后,点击yes即可等待jenkins重启,如下图:

  1. 钉钉群新建自定义机器人

在钉钉群找到群应用:机器人

进入后选择添加自定义机器人

添加后保存好Webhook和加签,用于后面在jenkins构建时配置钉钉机器人设置,如下图:

  1. 添加构建JOB,新建一个自定义风格的JOB

在jenkins插件钉钉全局配置中,配置Webhook和加签

进入构建配置,第一步,配置添加钉钉机器人,如下图:

设置构建保存时间和最大显示构建数:

在构建定时设置,主要是设置jenkins何时定时自动执行该构建项目

定时构建语法:

* * * * *(五颗星,中间用空格隔开)

第一颗*表示分钟,取值 0~59第二颗*表示小时,取值 0~23第三颗*表示一个月的第几天,取值 1~31第四颗*表示第几月,取值 1~12第五颗*表示一周中的第几天,取值 0~7,其中 0 和 7 代表的都是周日

接下来就是构建步骤配置:

最后就是构建后的报告输出配置,如下图:

以上所有配置完毕后,应用保存即可。

  1. 构建项目

等待构建执行完毕,查看构建历史和构建日志,显示BUILD SUCCESSFUL即代表成功

构建完毕后在配置路径下生成html和jtl文件,如下图:

同时可以在jenkins上查看html测试报告,如下图:

同时也会钉钉群推送构建通知,如下图:

自动构建效果:

这样就完成了

Jmeter+ant+Jenkins+钉钉机器人群通知的接口自动化测试环境的部署和自动构建,后续只需要使用jmeter完成接口测试场景测试用例的设计和脚本编写即可

文末福利

------------------------------------

【留言:软件测试学习,免费获取】 

------------------------------------

最后:这里有我建立的一个专门交流软件测试方面问题的学习群,里面也有很多大公司的技术大牛。很多时候,技术大牛的几句话就会让我们醍醐灌顶,少浪费时间,如果想要多跟有经验的人学习,就找我加入我的软件测试交流群,以后有工作的内推机会都相互推荐一下,毕竟我们是关系社会。

软件测试技术交流群社:194117263等待你的加入... 大家可以一起探讨交流,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路。 

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

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

相关文章

OS-内存管理-4种内存管理方式(连续分配,页式,段式,段页)。

一,内存管理四种方式。 二,连续分配管理方式。 连续分配方式:为用户分配连续的内存空间。 1.单一连续分配方式 2.固定分区分配方式 3.动态分区分配方式 4.三种连续分配方式的对比。 三,基于页式存储管理。 1.页式 为进一步提高…

【来不及刷题之】32、二分搜索(寻找数,寻找左右边界)

1. 基础二分搜索&#xff1a;寻找一个数 一道很基础的题目&#xff0c;主要注意一下循环条件是 left<right 即可 class Solution {public int search(int[] nums, int target) {int left0;int rightnums.length-1;while(left<right){int midleft(right-left)/2;if(nums…

第二十一章行为性模式—访问者模式

文章目录 访问者模式解决的问题结构实例存在的问题使用场景 拓展动态分派静态分派双分派 行为型模式用于描述程序在运行时复杂的流程控制&#xff0c;即描述多个类或对象之间怎样相互协作共同完成单个对象无法单独完成的任务&#xff0c;它涉及算法与对象间职责的分配。行为型模…

华为OD机试真题B卷 Java 实现【箱子之形摆放】,附详细解题思路

一、题目描述 要求将一批箱子按从上到下以‘之’字形的顺序摆放在宽度为 n 的空地上&#xff0c;输出箱子的摆放位置&#xff0c;例如&#xff1a;箱子ABCDEFG&#xff0c;空地宽为3。 摆放效果如下图&#xff1a; 则输出结果为&#xff1a; AFG BE CD 二、输入描述 一行…

智能语音交互流程

引言 用该文来讲解语音全流程涉及到的技术&#xff0c;整体语音涉及的交互流程如下图&#xff1a; Part1 唤醒 语音唤醒指的是通过预设的关键词即可将智能硬件从休眠状态唤醒&#xff0c;来执行相应操作。 1.1 交互模式 传统模式 唤醒方式&#xff1a;先唤醒设备&#xff…

重学数据结构与算法

学习数据结构与算法的目的&#xff1a; 优化时间复杂度与空间复杂度 优化时间复杂度与空间复杂度 优化时间复杂度与空间复杂度 教程总纲&#xff1a; 暴力解法(模拟)、算法优化(递归/二分/排序/DP)、时刻转换(数据结构) 1.时间复杂度的核心方法论2.增删查——选取数据结构的基…

MySQL_9 事务机制与隔离机制

目录 一、事务概述 1.定义 : 2.事务和锁 : 二、事务操作 1.MySQL控制台事务的基本操作 : 2.代码演示 : 3.注意事项 : 三、事务的“ACID”特性 : 四、隔离机制 1.介绍 : 2.分类 : 3.常用指令 : 一、事务概述 1.定义 : 事务用于保证数据的一致性&#xff0c;它由一…

python批量实现pdf转换为图片|实现pdf转为jpg/png|实现word批量转pdf|python批量实现word转换为图片

本文介绍了一种使用 Python 脚本来完成这项工作的方法&#xff0c;该脚本基于 PyMuPDF、pdf2image 和 win32com 库实现&#xff0c;可以帮助您快速地将 Word 文档转换为 PDF 文件&#xff0c;并将 PDF 文件转换为 PNG 图片。 一、安装所需的库和软件 在开始使用该脚本之前&am…

AWTK实现汽车仪表Cluster/DashBoard嵌入式GUI开发(一):概述

AWTK=Toolkit AnyWhere,一款国产免费开源工具,ZLG开发的开源GUI引擎,为嵌入式等系统提供图形界面开发IDE。 随着汽车技术的发展,汽车仪表盘也在快速发展,从最初的机械式到电气式,再到数字化。这次电动化、智能化又一次让汽车仪表出现了飞跃式的发展,再未来,仪表板上可…

04SpringCloud 消息中间件

为什么要使用消息中间件 同步通信&#xff1a;耗时长&#xff0c;受网络波动影响&#xff0c;不能保证高成功率&#xff0c;耦合性高。 同步&#xff0c;异步 并发&#xff1a;一段时间&#xff08;1S&#xff09;多个请求数 并行&#xff1a;时间节点&#xff0c;多个指令…

干接点与湿接点

&#xff08;1&#xff09;干接点的定义 无源开关&#xff1b;具有闭合和断开的2种状态&#xff1b;2个接点之间没有极性&#xff0c;可以互换。 常见的干接点信号有&#xff1a; 1&#xff09;各种开关如&#xff1a;限位开关、行程开关、脚踏开关、旋转开关、温度开关、液…

超越象限:解密 α 碎片的归属问题

文章目录 参考环境α 碎片的归属问题问题概述终边相同角圆心角终边相同角 象限角 描述象限角第一象限角任意象限角 特殊方案问解 叠加坐标系上部下部叠加坐标系 一般方案问解任意角 α分析绘图要领叠加坐标系N-N 参考 项目描述搜索引擎Google 、Bing百度百科首页佟大大还是ETT…

苹果iPhone14如何批量删除联系人?iPhone 14批量删除联系人方法

苹果iPhone 14如何批量删除联系人&#xff1f;手动一个个删实在太麻烦了&#xff01; 苹果iPhone 14手机的通讯录本身不支持批量删除联系人&#xff0c;但是如果通讯录在iCloud中开启过备份&#xff0c;就可以对联系人进行批量操作。 需要注意的是&#xff0c;iPhone 14手机端…

聊聊开源的类ChatGPT工作——ChatGLM

这是”聊聊开源的类ChatGPT工作“的第二篇&#xff0c;写第一篇[7]的时候&#xff0c;当时恰巧MOSS开源&#xff0c;就顺手写了MOSS。但要问目前中文领域的“开源”的语言模型谁更强&#xff0c;公认的还是ChatGLM-6B&#xff08;以下简称ChatGLM&#xff09;。 下面是官方对C…

【20230531】Git命令和Github相关使用

1 在Git中缓存GitHub凭据 根据系统下载对应的GitHub CLI 2.25.1 2. github主页&#xff0c;点击用户头像选择settings->Developer Settings->Personal access tokens申请密钥&#xff08;主要分为Fine-grained tokens和Tokens classic&#xff09;gh需要使用的是Tokens …

Spring Boot如何实现接口文档自动生成

Spring Boot如何实现接口文档自动生成 在开发Web应用程序时&#xff0c;接口文档是非常重要的一环&#xff0c;它可以帮助我们快速了解API的功能和使用方法&#xff0c;同时也是与其他开发人员和团队协作的重要工具。然而&#xff0c;手动编写和维护接口文档是一项繁琐的工作&…

商品上架业务

一.商品上架操作 将检索数据存入es&#xff0c;更改商品上架状态为已上架 二.业务设计 &#xff08;1&#xff09;设计检索数据 分析&#xff1a;商品上架在 es 中是存 sku 还是 spu&#xff1f; 1&#xff09;、检索的时候输入名字&#xff0c;是需要按照 sku 的 title 进行…

给大龄准备转行网络工程师的朋友一些建议

我一直认为&#xff0c;网络工程师是一个看能力而不是看年龄的工作。 大龄转行网络工程师到底有没有机会&#xff1f;很多三十多岁的朋友对于跨行业完全心里没底&#xff0c;冒然转行学习网工又不知道从何学起。今天就给大家整理几个在学习网络工程师的时候需要注意的地方&…

Linux系统下imx6ull QT编程—— C++数据封装与数据抽象(八)

Linux QT编程 文章目录 Linux QT编程前言一、数据封装二、数据抽象 前言 封装是面向对象编程中的把数据和操作数据的函数绑定在一起的一个概念&#xff0c;这样能避免受到外界的干扰和误用&#xff0c;从而确保了安全。数据封装引申出了另一个重要的 OOP 概念&#xff0c;即数…

用JavaScript做一个拼图游戏

喜欢的可以复制下面完整代码查看效果在自己本地查看效果 实现难度&#xff1a;不算大&#xff0c;毕竟是小游戏 开发工具&#xff1a;html&#xff0c;css&#xff0c;js&#xff0c;jquery 效果截图 完整代码 <!DOCTYPE html> <html lang"en"> <he…