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

目录

引言

一、安装apache-Ant

二、Jmeter准备

3、生成测试报告

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

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

结语


引言

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

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

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

【Jmeter教程:留言777免费获取】

讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程,学jmeter接口测试一套教程就够了!!

一、安装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,然后把井号取消,等号后面改为xml

activation.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、稳定性测试(指的是验证一个服务的稳定性)

结语

这篇贴子到这里就结束了,最后,希望看这篇帖子的朋友能够有所收获。

 获取方式:留言【Jmeter学习教程】即可

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!

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

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

相关文章

005 - STM32学习笔记 - 启动代码

005 - STM32学习笔记 - 启动代码 常用汇编指令 指令名称作用EQU给数字常量取一个符号名,相当于C语言中的#define;AREA汇编一个新的代码段或者数据段;SPACE分配内存空间;PRESERVE8当前文件栈需要按照8字节对齐;EXPORT…

k8s pv pvc的介绍|动态存储|静态存储

k8s pv pvc的介绍|动态存储|静态存储 1 emptyDir存储卷2 hostPath存储卷3 nfs共享存储卷4 PVC 和 PVNFS使用PV和PVC 4 搭建 StorageClass NFS,实现 NFS 的动态 PV 创建 1 emptyDir存储卷 当Pod被分配给节点时,首先创建emptyDir卷,并且只要该…

详解c++STL—函数对象

目录 1、函数对象 1.1、函数对象概念 1.2、函数对象的使用 2、谓词 2.1、谓词概念 2.2、一元谓词 2.3、二元谓词 3、内建函数对象 3.1、理解内建函数对象 3.2、算术仿函数 3.3、关系仿函数 3.4、逻辑仿函数 1、函数对象 1.1、函数对象概念 概念: 重载…

编译原理个人作业--第六章——基于 编译原理 国防工业出版社 第三版

2 对表达式((a)(b)) (1) 按照表6.4属性文法构造抽象语法树 (2) 按6.17翻译模式构造表达式抽象语法树 5(1) 下列文法对整型常数、实型常熟世家加法运算符 生成表达式,当两个整型数相加,结果为整形,否则结果为实型 E → E T ∣ T E\r…

面试技术点

一、对热修复、插件化、模块化、组件化有一定研究。 1、模块化 将共享部分或业务模块抽取出来形成独立module。 2、组件化 基于模块化,核心思想是角色的转换,在打包时是library,分离独立的业务组件如微信朋友圈。 3、热修复和插件化种类、…

电力系统机组组合优化调度(IEEE14节点、IEEE30节点、IEEE118节点)(Matlab代码实现)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥 📝目前更新:🌟🌟🌟电力系统相关知识,期刊论文&…

Java并发编程-synchronized

目录 1. synchronized在jdk 1.6中的优化 1.1 锁消除 1.2 锁粗化 1.2 锁升级/锁膨胀 1.2.1 锁升级原理 1.2.2 自适应自旋锁 2. synchronized实现原理 3. synchronized和Lock的对比 1. synchronized在jdk 1.6中的优化 在JDK1.5的时候,Doug Lee推出了ReentrantLock,lock的…

chatgpt赋能Python-python_os拷贝文件

Python os拷贝文件 – 从简介到实现 Python os库是一个经常使用的工具,它是Python的标准库,提供了与操作系统进行交互的函数和方法。其中,os拷贝文件是其常用的功能之一,可以用来实现文件备份、文件复制等等操作。接下来&#xf…

windows sever服务器安装系统新手版

混在learnsite群里已经有几年了吧,但是只有一段时间用了别人现成的一个iso版本还比较老,这次打算自己弄一个,一开始打算linux下弄,结果系统都装完了发现人家说learnsite在linux下有点bug没解决好,只能win下再弄&#x…

Vue+uniapp桃源婚恋交友APP 安卓小程序 nodejs java python

小程序框架:uniapp 小程序开发软件:HBuilder X 开发模式:混合开发本文先提出了开发基于小程序的桃源婚恋交友APP系统的背景意义,然后通过功能性和非功能性分析阐述本系统的需求,然后进行系统设计。技术实现部分选择Jav…

据不可靠消息,ST的新一代机皇正式命名为STM32V8系列,搭载Cortex-M85内核

根据以往的传统单片机命名方式: C0, L0, G0, F0 > Cortex-M0内核 F1, L1 > Corterx-M3内核 F2, F3 > Corterx-M3/M4 F4,G4,L4, L4 > Cortex-M4内核 L5,U5, H5 > Cor…

web安全第一天 ,域名,dns

第一天 什么是域名?域名就是网络地址 在hhtp之后的就是域名 域名在哪里注册呢 国内注册商有很多,在网络上搜索一下阿里云万网就可以注册 什么是二级域名和多级域名 域名通常都是www.开头 ,而www.被称为顶级域名,在搜索的时候…

部门来了个测试开发,听说是00后,上来一顿操作给我看呆了...

公司新来了个同事,听说大学是学的广告专业,因为喜欢IT行业就找了个培训班,后来在一家小公司实习半年,现在跳槽来我们公司。来了之后把现有项目的性能优化了一遍,服务器缩减一半,性能反而提升4倍&#xff01…

深度学习量化总结(PTQ、QAT)

背景 目前神经网络在许多前沿领域的应用取得了较大进展,但经常会带来很高的计算成本,对内存带宽和算力要求高。另外降低神经网络的功率和时延在现代网络集成到边缘设备时也极其关键,在这些场景中模型推理具有严格的功率和计算要求。神经网络…

5月份招了个00后测试堪称卷王之王,让人崩溃...

前段时间公司新来了个同事,听说大学是学的广告专业,因为喜欢IT行业就找了个培训班,后来在一家小公司干了三年,现在跳槽来我们公司。来了之后把现有项目的性能优化了一遍,服务器缩减一半,性能反而提升4倍&am…

c++虚函数详解(多态特性)

1.c多态的概念 多态是c的特征之一 多态的分类:静态多态(静态联编)、动态多态(动态联编) 静态多态(静态联编):函数入口地址 是在 编译阶段 确定(运算符重载、函数重载&…

使用go语言构建区块链 Part4.事务1

英文源地址 简介 事务是比特币的核心, 区块链的唯一目的是以安全可靠的方式存储交易, 因此在交易创建后没有人可以修改. 今天我们开始实现事务, 但由于这是一个相当大的主题, 我将它分成两部分: 在这一部分中, 我们将实现事务的通用机制, 在第二部分中, 我们将研究细节. 此外…

【Go语言从入门到实战】基础篇

Go语言从入门到实战 — 基础篇 First Go Program 编译 & 运行 基本程序结构 应用程序入口 package mainimport "fmt"func main() {fmt.Println("Hello World") }退出返回值 package mainimport ("fmt""os" )func main() {fmt.Pr…

Unity3D :使用 UXML 实例作为模板

推荐:将 NSDT场景编辑器 加入你的3D工具链 3D工具集: NSDT简石数字孪生 使用 UXML 实例作为模板 您可以将现有 UXML 文档实例化为 UXML 文档中的模板作为模板实例,类似于预制件 在 Unity 中工作。 使用 UXML 文档作为模板 要将项目中的现有…

MySQL高级篇——覆盖索引、前缀索引、索引下推、SQL优化、主键设计

导航: 【Java笔记踩坑汇总】Java基础进阶JavaWebSSMSpringBoot瑞吉外卖SpringCloud黑马旅游谷粒商城学成在线MySQL高级篇设计模式牛客面试题 目录 8. 优先考虑覆盖索引 8.1 什么是覆盖索引? 8.1.0 概念 8.0.1 覆盖索引情况下,“不等于”…