如何让你的 Jmeter+Ant 测试报告更具吸引力?

引言

想象一下,你辛苦搭建了一个复杂的网站,投入了大量的时间和精力进行开发和测试。当你终于完成了测试并准备生成测试报告时,你可能会发现这个过程相当乏味,而对于其他人来说,它可能也不那么吸引人。

但是,不要放弃!因为在本文中,我们将分享如何使用 Jmeter+Ant 生成测试报告,并让它更具吸引力。

JMeter生成测试报告使用的是Ant(Maven)构建工具来生成HTML的测试报告。

 

一、安装apache-Ant

1、解压apache-ant安装包
ant是Java语言的构建工具 Apache Ant - Binary Distributions


2、配置环境
①:复制ant中bin目录的路径放到Path变量中(注意以英文的分号和前面的隔开)
E:\workplace\Ant\apache-ant-1.9.14\bin


3、验证ant否安装成功
控制台指令:ant -v

二、Jmeter准备

1、jmeter目录下新建tests文件夹(tests文件夹里面存储测试脚本和测试报告),在tests文件夹下新建report和script文件夹,再在report文件夹下新建html和jtl文件夹
2、把jmeter保存的测试脚本保存到script下
目录结构如下图所示:

 

把jmeter下的extras文件下的ant-jmeter-1.1.1.jar复制,粘贴到ant下的lib文件中编写build.xml文件,把build.xml放在jmeter的tests的文件下在jmeter的bin目录下找到jmeter.properties用记事本打开,CTRL+F找到#jmeter.save.saveservice.output_format=csv,然后把井号取消,等号后面改为xmlactivation.jar, commons-email-1.2.jar,   mail.jar,这三个文件放在ant的lib目录下完善build.xml文件:
build.xml文件定义了
A、执行哪个测试脚本
B、实现自动发送脚本(邮箱)
C、自动生成测试报告定义jmeter地址 加上接受报告的qq邮箱 要执行的测试脚本的名字 自动生成测试报告在控制台进入到tests,输入ant,这时在report下的html中,会有测试报告

 

把build.xml放在jmeter的tests的文件下:

3、生成测试报告

 ant执行的条件是需要有build.xml的文件的,build.xml文件里面主要编写三个内容:
1、定义了被执行的测试脚本
2、定义了测试报告的目录
3、定义了自动发送邮件

HTTP COOKIE管理器(SESSION会话对象--》代码级别):
1、所有请求之间的COOKIE是共享的
2、所有请求之间的COOKIE共享的同时底层的TCP连接只建立一次连接

11表示匹配到的第1个值赋给引用名称。


4、JMeter动态参数处理逻辑是什么?

以登录为案例,登录成功后返回的TOKEN每次都是不一样的,这个值就是动态参数,那么在登录成功后的接口中(如首页)需要调用到这个TOKEN:
1、在登录的接口中添加后置处理器中的JSON提取器,定义一个变量获取登录成功后返回的token的值
2、在下个接口(如首页)中通过${}来调用这个变量
3、执行线程组中的任务,就能够实现参数的上下关联

常用的组件:
1、HTTP信息头管理器
2、COOKIE管理器
3、查看结果树
4、JSON提取器/正则表达式提取器
5、JSON断言以及响应断言
6、HTTP请求默认值
7、用户定义的变量(分离的是公共的数据)

5、JMeter是怎么做API自动化测试的?

1、首先在JMeter里面创建测试计划,在测试计划里面创建线程组2、在线程组里面添加HTTP的请求,以及添加API的测试用例
3、编写测试用例结束后,结合Ant构建工具,编写build.xml文件(执行脚本,测试报告目录,自动发送邮件)
4、在build.xml文件的目录下执行ant,就会自动执行
5、最后整合到Jenkins持续集成的平台,那么在下个版本中,只需要点击构建就能够自动化的执行

针对一个服务,你怎么测试?
1、正常功能
2、异常功能
A、请求参数是必须填写,但是没有带,后台有没有做判断
B、请求参数的数据类型是否做了判断
C、特定参数需要特定的值
D、请求参数超过长度的限制
3、安全测试,主要指的是服务是否做了认证授权
4、性能测试(这个服务同时多少个人可以访问)
5、稳定性测试(指的是验证一个服务的稳定性)

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

 

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

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

相关文章

大语言模型新升级:亚马逊云科技2023芯片创新日

在这个充满活力的2023年芯片创新日,Amazon EC2 的副总裁 Dave Brown 与观众分享了他与 EC2 的15年漫长旅程。他的眼中闪烁着对技术的热情,他描述了自己如何与一个才华横溢的团队合作,在这大语言模型与生成式AI的元年中致力于为客户提供最佳的…

ELK+filebeat+kafka

无需创建logstash的端口,直接创建topic 远程收集mysql和httpd的日志 (一)安装nginx和mysql服务 1、打开mysql的日志功能 2、创建日志(创库、创表、添加数据) (1)mysql服务器上安装http system…

医疗机构临床数据合规共享解决方案斩获“金智奖”年度优秀方案奖

11月24日,以“并肩聚力,协同创新,共谋网络安全产业新发展”为主题的2022—2023年度中国网络安全与信息产业“金智奖”(以下简称:“金智奖”)颁奖盛典隆重举行。美创科技—医疗机构临床数据合规共享解决方案…

synchronized 关键字

目录 1 synchronized 的特性 1)互斥 2) 刷新内存(内存可见性) 3) 可重入 2 synchronized 使用示例 1) 直接修饰普通方法: 2) 修饰静态方法: 3) 修饰代码块: .3 Java 标准库中的线程安全类 1 synchronized 的特性 1&#x…

java之while循环

java之while循环 用法简介 用法简介 Java中的while循环是一种基本的控制流语句,它允许您在满足某个条件的情况下重复执行一段代码。以下是while循环的基本语法: while (condition) { // code to be executed while the condition is true }其中&…

Java数据结构之《链式线性表的插入与删除》问题

一、前言: 这是怀化学院的:Java数据结构中的一道难度中等偏下的一道编程题(此方法为博主自己研究,问题基本解决,若有bug欢迎下方评论提出意见,我会第一时间改进代码,谢谢!) 后面其他编程题只要我…

C++设计模式——建造者模式(Builder)

一、什么是建造者模式? 建造者模式是一种创建型的软件设计模式,用于构造相对复杂的对象。 建造者模式可以将复杂对象的构建与它的表示分离,使得相同的构建过程可以得到不同的表示。如果说工厂模式和抽象工厂模式更注重产品整体,…

程序员的吐槽

在职场中,每个人都可能遇到让自己不满的领导或同事。这位工作了7年的程序员,今天就要吐槽一下他职场中的种种不快。 一、领导的“关爱” 1. 瞎指挥 这位程序员所在的公司规模不大,领导对技术一窍不通,却喜欢对技术团队指手画脚。…

【开源】基于Vue+SpringBoot的智能教学资源库系统

项目编号: S 050 ,文末获取源码。 \color{red}{项目编号:S050,文末获取源码。} 项目编号:S050,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 课程档案模块2.3 课…

Android中添加C或C++代码

1、创建cpp目录,用于存放C和C代码。 2、创建CMake构建脚本CMakeLists.txt文件,将其放在cpp目录中。 # Sets the minimum version of CMake required to build the native library. cmake_minimum_required(VERSION 3.22.1)# Declares and names the pro…

AI模型训练——入门篇(二)

导语:本文主要介绍了基于BERT的文本分类方法,通过使用huggingface的transformers库实现自定义模型和任务。具体步骤包括:使用load_dataset函数加载数据集,并应用自定义的分词器;使用map函数将自定义分词器应用于数据集…

vue运用之el-cascader组件

前言 el-cascader 是 Element UI 的级联选择器组件。以下是一些常见的 el-cascader 问题以及对应的案例代码。 1. 如何使用 el-cascader 创建一个级联选择器 以下是一个简单的 el-cascader 示例: <template> <el-cascader v-model="selected" :option…

Linux:进程状态

目录 1.Linux内核关于进程状态的源代码 2. 运行状态 3. 阻塞状态 4. 挂起 5.Linux中的进程状态 5.1 睡眠状态 5.2 暂停状态 5.3 僵尸进程与孤儿进程 我们在学习进程状态时&#xff0c;老师只是简单的让我们记住下面这张图 1.教材中进程操作系统的进程状态 那么这些…

分享常见msvcp140.dll丢失的解决方法,msvcp140.dll修复的问题

在使用电脑的过程中可能会出现关于msvcp140.dll丢失的问题&#xff0c;通常出现这样的问题都会导致电脑中的程序出现不能正常运行的情况。并且如果不及时将msvcp140.dll修复的话可能还会导致电脑出现其他的问题。这篇文章就将给大家介绍关于msvcp140.dll丢失的解决方法。 一.常…

基于安卓的2048益智游戏的设计与实现

基于安卓的2048益智类游戏的设计与实现 摘要&#xff1a;现如今随着社会日新月异&#xff0c;人们越来越离不开智能手机所提供的灵活性与便携性。安卓系统是在这股手机发展迅猛的潮流中其市场占有率过半的手机平台&#xff0c;基于安卓系统的游戏开发有着不可估量的前景。 本论…

抖音、快手、新东方来袭,旅游行业战火再起?

低调了许久的旅游行业&#xff0c;终于迎来了大复苏&#xff0c;旅客的出游热情也再度被点燃&#xff0c;出游人数呈现出不断攀升态势。以“十一”黄金周为例&#xff0c;据文化和旅游部数据中心统计&#xff0c;本次黄金周&#xff0c;国内旅游出游人数8.26亿人次&#xff0c;…

jupyter notebook 添加conda环境变量为内核(kenel)

第一步&#xff1a;安装ipykernel 在激活环境后&#xff0c;需要安装ipykernel包&#xff0c;以便将Conda环境添加到Jupyter Notebook中。使用以下命令安装&#xff1a; pip install ipykernel第二步&#xff1a;将Conda环境添加到Jupyter 需要将Conda环境添加到Jupyter Not…

Java for/forEach 不支持重新賦值

loop中不支持變量重新賦值 Local variable printTotal defined in an enclosing scope must be final or effectively final 需要優化&#xff0c;這樣寫太羅嗦。 JasperPrint printTotal null;for(JasperPrint print:printList) {if(printTotalnull) {/*********************…

echarts 对数坐标轴

echarts 对数坐标轴 描述 Echarts 柱状图数据大小差距过大&#xff0c;例如一个值是100000&#xff0c;一个值是5&#xff0c;值小的柱子就不会显示出来。 解决&#xff0c;使用对数坐标轴 option {tooltip: {trigger: axis,},xAxis: {type: category,data: [Mon, Tue, We…

【Linux基础开发工具】yum生态vim的配置与使用

目录 前言 1. Linux 软件包管理器 yum 1.1 什么是yum 1.2 快速上手yum 1.3 yum生态 2. Linux编辑器vim 2.1 vim的模式 2.2 vim使用技巧 3. vim编辑器辅助功能配置 3.1 配置 3.2 用户sudo权限配置 总结 前言 Linux基础指令与权限之后&#xff0c;Linux系统开发工具的使用…