百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

小白必看!用JMeter+ANT进行接口自动化测试,并生成HTML测试报告

zhezhongyun 2024-12-15 17:54 30 浏览

每天进步一点点,关注我们哦,每天分享测试技术文章

本文章出自【码同学软件测试】

码同学公众号:自动化软件测试

码同学抖音号:小码哥聊软件测试

小伙伴们,用python做接口自动化是不是写代码比较繁琐,而且没有python代码基础的小伙伴根本无从下手对吧!今天我们来学习一下如何使用JMeter工具实现接口自动化测试



01

安装



1、安装JDK,配置java环境变量(安装过程略)

2、安装Jmeter(安装过程略)

3、安装ANT

  • 下载安装

下载地址:http://ant.apache.org/bindownload.cgi

① 下载后解压到指定位置即可,比如:F:\apache-Ant

② 将jmeter所在的目录下extras子目录里的ant-jmeter-1.1.1.jar复制到ant所在目录lib子目录之下,这样ant运行时才能找到”

org.programmerplanet.ant.taskdefs.jmeter.JMeterTask”这个类,从而成功触发JMeter脚本。

  • 配置环境变量

添加环境变量(以windows为例)

ANT_HOME F:\apache-Ant

CLASSPATH %ANT_HOME%\lib

Path %ANT_HOME%\bin

  • 验证安装结果,命令行输入ant -version,出现版本信息则安装成功



02

ANT与JMeter



配置ANT与Jmeter的配置文件

1、配置ANT配置ant编译文件build.xml

拷贝下面的内容与新建的txt文件中,并将此文件改名为:build.xml

<?xml 
version
="
1.0
" 
encoding
="
utf
-8
"?>
<
project 
name
="
pc
" 
default
="
all
" 
basedir
="
F:\apache-jmeter-5.0\jmeterAutoTest
">
    <
tstamp
>
        <
format 
property
="
time
" 
pattern
="
yyyyMMddhhmm
" />
    </
tstamp
><
property 
name
="
jmeter
.home
" 
value
="
F:\apache-jmeter-5.0
" /><
property 
name
="
jmeter.result.jtl.dir
" 
value
="
F:\apache-jmeter-5.0\jmeterAutoTest\pc\resultlog\jtl
" /><
property 
name
="
jmeter.result.html.dir
" 
value
="
F:\apache-jmeter-5.0\jmeterAutoTest\pc\resultlog\html
" /><
property 
name
="
ReportName
" 
value
="
TestReport
" /><
property 
name
="
jmeter.result.htmlName
" 
value
="
${jmeter.result.html.dir}/${ReportName}${time}.html
" /><
property 
name
="
jmeter.result.jtlName
" 
value
="
${jmeter.result.jtl.dir}/${test}${time}.jtl
" /><
property 
name
="
mail_from
" 
value
="
xx@163.com
" /><
property 
name
="
mail_to
" 
value
="
xx
@qq.com
" />
    

    <
target 
name
="
all
">
        <
antcall 
target
="
test
" />
        <
antcall 
target
="
report
" />
        <
antcall 
target
="
send
" />
    </
target
>
    <
target 
name
="
test
">
        <
taskdef 
name
="
jmeter
" 
classname
="
org.programmerplanet.ant.taskdefs.jmeter.JMeterTask
" />
        <
jmeter 
jmeterhome
="
${jmeter.home}
" 
resultlog
="
${jmeter.result.jtlName}
">
            
            <
testplans 
dir
="
F:\apache-jmeter-5.0\jmeterAutoTest\pc\script
" />
        </
jmeter
>
    </
target
>

    <
path 
id
="
xslt.classpath
">
        <
fileset 
dir
="
${jmeter.home}/lib
" 
includes
="
xalan*.jar
"/>
        <
fileset 
dir
="
${jmeter.home}/lib
" 
includes
="
serializer*.jar
"/>
    </
path
>

    <
target 
name
="
report
">
        <
xslt 
classpathref
="
xslt
.c
lasspath
"
        
force
="
true
"
        
in
="
${jmeter.result.jtlName}
" 
        
out
="
${jmeter.result.htmlName}
" 
        
style
="
${
jmeter.home}/extras/jmeter-results-detail-report_21.xsl
">
            <
param 
name
="
dateReport
" 
expression
="${
time
}"/>
    </
xslt
>
        
        <
copy 
todir
="
${
jmeter.result.html.dir
}">
            <
fileset 
dir
="
${
jmeter.home}/extras
">
                <
include 
name
="
collapse.png
" />
                <
include 
name="expand.png" />
            </
fileset
>
        </
copy
>
    </
target
></
project
>

2、改build.xml文件,按照实际的文件路径配置好

3、配置jmeter.properties

免费领取 码同学软件测试 课程笔记+超多学习资料+完整视频+最新面试题,可以转发文章 + 私信「码同学666」获取资料哦

配置jmeter报告输出格式为xml,在jmeter/bin目录下jmeter.properties文件中修改jmeter.save.saveservice.output_format=csvjmeter.save.saveservice.output_format=xml并去掉前面的注释符号#


4、准备测试脚本数据

新建文件夹pc,pc文件夹分别新建buildfileresultlogscript 三个文件夹,buildfile文件夹放入build.xml文件,resultlog里分别新建html,jtl文件夹。


注:Resultlog

Html文件夹装的是ant 转化后的结果

Jtl文件装的是meter生成的结果

Script:Jmeter执行的脚本



03

测试报告



打开命令行进行build.xml文件所在的目录,输入ant即可生成报告,报告存放在html文件夹里

生成的测试报告如下:

测试报告优化

用jmeter自带的测试报告得到的测试报告信息并不是很全,这里参考网上的方法,做一个优化


1、下载优化模板jmeter-results-shanhe-me.xsl,拷贝到jmeter的extras目录中,如C:\apache-jmeter-2.12\extras


2、设置测试输出报告要输出的内容,同样在jmeter.properties中,设置需要输出的内容为true,并去掉前面的注释符号#,这里全部设置成true


修改前:

修改后:


3、设置build文件的报告模板为优化后的模板jmeter-results-shanhe-me.xsl


4、按前面的方式再次用ant构建测试,查看优化后的测试报告

免费领取码同学软件测试课程笔记+超多学习资料+学习完整视频,可以关注我们公众号哦:自动化软件测试

本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

相关推荐

JPA实体类注解,看这篇就全会了

基本注解@Entity标注于实体类声明语句之前,指出该Java类为实体类,将映射到指定的数据库表。name(可选):实体名称。缺省为实体类的非限定名称。该名称用于引用查询中的实体。不与@Tab...

Dify教程02 - Dify+Deepseek零代码赋能,普通人也能开发AI应用

开始今天的教程之前,先解决昨天遇到的一个问题,docker安装Dify的时候有个报错,进入Dify面板的时候会出现“InternalServerError”的提示,log日志报错:S3_USE_A...

用离散标记重塑人体姿态:VQ-VAE实现关键点组合关系编码

在人体姿态估计领域,传统方法通常将关键点作为基本处理单元,这些关键点在人体骨架结构上代表关节位置(如肘部、膝盖和头部)的空间坐标。现有模型对这些关键点的预测主要采用两种范式:直接通过坐标回归或间接通过...

B 客户端流RPC (clientstream Client Stream)

客户端编写一系列消息并将其发送到服务器,同样使用提供的流。一旦客户端写完消息,它就等待服务器读取消息并返回响应gRPC再次保证了单个RPC调用中的消息排序在客户端流RPC模式中,客户端会发送多个请...

我的模型我做主02——训练自己的大模型:简易入门指南

模型训练往往需要较高的配置,为了满足友友们的好奇心,这里我们不要内存,不要gpu,用最简单的方式,让大家感受一下什么是模型训练。基于你的硬件配置,我们可以设计一个完全在CPU上运行的简易模型训练方案。...

开源项目MessageNest打造个性化消息推送平台多种通知方式

今天介绍一个开源项目,MessageNest-可以打造个性化消息推送平台,整合邮件、钉钉、企业微信等多种通知方式。定制你的消息,让通知方式更灵活多样。开源地址:https://github.c...

使用投机规则API加快页面加载速度

当今的网络用户要求快速导航,从一个页面移动到另一个页面时应尽量减少延迟。投机规则应用程序接口(SpeculationRulesAPI)的出现改变了网络应用程序接口(WebAPI)领域的游戏规则。...

JSONP安全攻防技术

关于JSONPJSONP全称是JSONwithPadding,是基于JSON格式的为解决跨域请求资源而产生的解决方案。它的基本原理是利用HTML的元素标签,远程调用JSON文件来实现数据传递。如果...

大数据Doris(六):编译 Doris遇到的问题

编译Doris遇到的问题一、js_generator.cc:(.text+0xfc3c):undefinedreferenceto`well_known_types_js’查找Doris...

网页内嵌PDF获取的办法

最近女王大人为了通过某认证考试,交了2000RMB,官方居然没有给线下教材资料,直接给的是在线教材,教材是PDF的但是是内嵌在网页内,可惜却没有给具体的PDF地址,无法下载,看到女王大人一点点的截图保...

印度女孩被邻居家客人性骚扰,父亲上门警告,反被围殴致死

微信的规则进行了调整希望大家看完故事多点“在看”,喜欢的话也点个分享和赞这样事儿君的推送才能继续出现在你的订阅列表里才能继续跟大家分享每个开怀大笑或拍案惊奇的好故事啦~话说只要稍微关注新闻的人,应该...

下周重要财经数据日程一览 (1229-0103)

下周焦点全球制造业PMI美国消费者信心指数美国首申失业救济人数值得注意的是,下周一希腊还将举行第三轮总统选举需要谷歌日历同步及部分智能手机(安卓,iPhone)同步日历功能的朋友请点击此链接,数据公布...

PyTorch 深度学习实战(38):注意力机制全面解析

在上一篇文章中,我们探讨了分布式训练实战。本文将深入解析注意力机制的完整发展历程,从最初的Seq2Seq模型到革命性的Transformer架构。我们将使用PyTorch实现2个关键阶段的注意力机制变...

聊聊Spring AI的EmbeddingModel

序本文主要研究一下SpringAI的EmbeddingModelEmbeddingModelspring-ai-core/src/main/java/org/springframework/ai/e...

前端分享-少年了解过iframe么

iframe就像是HTML的「内嵌画布」,允许在页面中加载独立网页,如同在画布上叠加另一幅动态画卷。核心特性包括:独立上下文:每个iframe都拥有独立的DOM/CSS/JS环境(类似浏...