【软件测试】Linux环境Ant调用Jmeter脚本并且生成测试报告(详细)

news2024/11/25 0:30:19

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

准备工作

需要在Linux上提前安装好 JDK、 Jmeter 和 Ant。

在Linux上新建以下目录(根据自己实际情况处理):

[root@wintest ~]# mkdir /root/demo
[root@wintest ~]# mkdir /root/demo/jmeter_script
[root@wintest ~]# mkdir /root/demo/result
[root@wintest ~]# mkdir /root/demo/result/html
[root@wintest ~]# mkdir /root/demo/result/jtl
[root@wintest ~]# cd /root/demo
[root@wintest demo]# 

其中,jmeter_script 用于存放Jmeter的测试脚本(jmx文件),result 用于存放测试结果,其子文件夹 html 和 jtl 分别用于存放生成的HTML测试报告和jtl文件。

准备一个 Jmeter 的测试脚本,并放到jmeter_script 下。此时,如果直接在 /root/demo 目录下执行 ant 命令,会出现报错提示 build.xml 不存在:

[root@wintest demo]# ant
Buildfile: build.xml does not exist!
Build failed
[root@wintest demo]# 

build.xml 是 ant 的构建文件,可以自己编写一个,或者去网上找一个下来自己进行修改,以下是我这里的 build.xml 内容:

<?xml version="1.0" encoding="utf8"?>

<project name="ant-jmeter-test" default="run" basedir=".">
    <tstamp>
        <format property="time" pattern="yyyyMMddHHmm" />
    </tstamp>
    <!-- 需要改成自己本地的jmeter目录-->  
    <property name="jmeter.home" value="/root/SoftWare/Jmeter/apache-jmeter-5.1.1" />
    <!-- jmeter生成的jtl格式的结果报告的路径--> 
    <property name="jmeter.result.jtl.dir" value="/root/demo/result/jtl" />
    <!-- jmeter生成的html格式的结果报告的路径-->
    <property name="jmeter.result.html.dir" value="/root/demo/result/html" />
    <!-- ʺ生成的报告的前缀-->  
    <property name="ReportName" value="TestReport" />
    <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}.jtl" />
    <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}.html" />
    <target name="run">
        <antcall target="test" />
        <antcall target="report" />
    </target>

    <target name="test">
        <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
        <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}" jmeterlogfile="/root/demo/jmeter.log">
             <!-- 声明要运行的脚本"*.jmx"指包含此目录下的所有jmeter脚本-->
            <testplans dir="/root/demo/jmeter_script" includes="*.jmx" />
           <property name="jmeter.save.saveservice.output_format" value="xml"/>
        </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">
        <tstamp> 
                <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" />
        </tstamp>
        <xslt 
            classpathref="xslt.classpath"
            force="true"
            in="${jmeter.result.jtlName}"
            out="${jmeter.result.htmlName}"
            style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl">
            <param name="dateReport" expression="${report.datestamp}"/>
        </xslt>
        <!-- 拷贝报告所需的图片资源至目标目录 --> 
        <copy todir="${jmeter.result.html.dir}">
            <fileset dir="${jmeter.home}/extras">
                <include name="collapse.png" />
                <include name="expand.png" />
            </fileset>
        </copy>
    </target>
</project>

上面使用了一个网上的Jmeter报告模板文件:jmeter.results.shanhe.me.xsl,需要下载该文件并放到Jmeter所在目录下 extras 子目录中。

D1

最终,demo结构如下:

[root@wintest demo]# ls
build.xml  jmeter_script  result
[root@wintest demo]# tree
.
├── build.xml
├── jmeter_script
│   └── ant_jmeter_test.jmx
└── result
    ├── html
    └── jtl

4 directories, 2 files
[root@wintest demo]# 

另外,我们还需要将安装Jmeter所在目录下 extras 子目录(/root/SoftWare/Jmeter/apache-jmeter-5.1.1/extras)的 ant-jmeter-1.1.1.jar 复制到ant所在目录下 lib 子目录(/root/SoftWare/Ant/apache-ant-1.9.14/lib)下。

这样ant在执行时才能正常触发Jmeter的jmx脚本文件。
命令如下:

cp /root/SoftWare/Jmeter/apache-jmeter-5.1.1/extras/ant-jmeter-1.1.1.jar /root/SoftWare/Ant/apache-ant-1.9.14/lib

修改Jmeter配置文件

接着,我们还需要修改下Jmeter所在目录下 bin 子目录(/root/SoftWare/Jmeter/apache-jmeter-5.1.1/bin)下的 jmeter.properties,修改如下:

D2

将一些参数设置为 true,可以保存这些结果到 jtl 文件,如果有需要也可以全部设置为 true 来试试。

D3

为了防止出现响应乱码,最好将这里编码设置为 UTF-8。

D4

Ant构建生成测试报告

以上配置完成后,现在我们只需要执行Ant构建,便可以得到测试结果了。因为在安装Ant时已经配置了环境变量,所以只需要在项目下输入 ant,就可以得到jtl文件及转换后的HTML测试报告。

[root@wintest demo]# ant
Buildfile: /root/demo/build.xml

run:

test:
   [jmeter] Executing test plan: /root/demo/jmeter_script/ant_jmeter_test.jmx ==> /root/demo/result/jtl/TestReport.jtl
   [jmeter] Creating summariser <summary>
   [jmeter] Created the tree successfully using /root/demo/jmeter_script/ant_jmeter_test.jmx
   [jmeter] Starting the test @ Mon Jan 20 23:02:29 CST 2020 (1579532549840)
   [jmeter] Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445
   [jmeter] summary +      1 in 00:00:00 =    2.6/s Avg:   100 Min:   100 Max:   100 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0
   [jmeter] summary =      1 in 00:00:00 =    2.5/s Avg:   100 Min:   100 Max:   100 Err:     0 (0.00%)
   [jmeter] Tidying up ...    @ Mon Jan 20 23:02:31 CST 2020 (1579532551078)
   [jmeter] ... end of run

report:
     [xslt] Processing /root/demo/result/jtl/TestReport.jtl to /root/demo/result/html/TestReport.html
     [xslt] Loading stylesheet /root/SoftWare/Jmeter/apache-jmeter-5.1.1/extras/jmeter.results.shanhe.me.xsl

BUILD SUCCESSFUL
Total time: 5 seconds
[root@wintest demo]# 

将测试报告传到Windows,在浏览器中查看HTML报告,如下:

D5

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

奋斗是燃烧的火焰,不停地点燃内心的激情。不畏困难,跨越障碍,用汗水和努力铸就未来的辉煌。相信自己,勇往直前,你的努力将绽放出属于你的耀眼光芒。

追逐梦想的路上,每一次付出都值得珍惜。无论前方有多少困难,坚持奋斗,勇往直前,才能让生命绽放出最美的色彩。相信自己,不断拼搏,你定能成就辉煌!

在征途上,每一次努力都是成长的脚印。放飞心灵,拥抱挑战,勇敢地跨越自我,才能开启真正的辉煌。不断追求进步,激发潜能,你就是无可阻挡的力量,创造属于自己的奇迹!

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

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

相关文章

K8s环境下监控告警平台搭建及配置

Promethues是可以单机搭建的&#xff0c;参考prometheus入门[1] 本文是就PromethuesGrafana在K8s环境下的搭建及配置 Prometheus度量指标监控平台简介 启动minikube minikube start 安装helm 使用Helm Chart 安装 Prometheus Operator: helm install prometheus-operator stabl…

kubernetes的存储卷使用

目录 一、为什么使用存储卷 二、emptyDir存储卷 1.概念 2.创建Pod emptyDir 3. 验证emptyDir存储卷 三、hostPath存储卷 1.概念 2.创建Pod hostPath 3.验证hostPath存储卷 三、nfs共享存储卷 1.概念 2.安装nfs&#xff0c;配置nfs服务 3.创建Pod 4.验证nfs存储卷 一、…

quartz定时任务空指针异常

1.错误方式 通过注解把对象给引用进来&#xff0c;然后直接使用。会报空指针异常的&#xff0c;拿不到exportRecordRepository对象。 2.正确方式 网上搜了很多&#xff0c;改完之后依然不能用&#xff0c;最终解决办法。 1.添加自动注入方法 Component public class AutoBe…

适合大学生的兼职有什么?推荐四个靠谱的副业!

不知不觉新学期也要开始了&#xff0c;大学生们会不会因为苦恼的钱不够花而不够尽兴&#xff0c;很多大学生都想利用下课的时间来做一份兼职&#xff0c;但是有很多鉴于学校封校不知道自己可以做什么&#xff0c;我来为大家整理了以下几个大学生在学校内相对可靠的兼职。 第一个…

什么是Node js?什么是React?有什么区别

JavaScript是当今最流行的编程语言之一&#xff0c;它用于开发多种技术&#xff0c;两种这样的技术是Node.js和React。许多学生很难理解Nodejs和React之间的区别。 React和Nodejs之间的主要区别在于它们的使用位置。Nodejs 用于开发应用程序的服务器端&#xff0c;而Reactjs用于…

Co-Occurrence Matrix——共现矩阵原理介绍

文章目录 共现和上下文窗口共现矩阵的生成共现矩阵存在的问题及解决方法主成分分析 PCA奇异值分解 SVD 共现和上下文窗口 共现&#xff08;Co-occurrence&#xff09;——对于给定的语料库&#xff0c;一对单词&#xff08;如w1和w2&#xff09;的共现是指它们在上、下文窗口中…

Air001基于Keil环境开发,使用airisp串口命令行烧录

Air001基于Keil环境开发&#xff0c;使用airisp串口命令行烧录 有人会有这样的疑惑&#xff0c;使用Keil平台开发&#xff0c;为什么不直接使用CMSIS-DAP直接烧录&#xff0c;还要使用串口方式来去单独烧录&#xff0c;不是我不想&#xff0c;目前使用合宙官方的Air103芯片版本…

SAP采购订单“交货已完成”勾选后仍可收货的原因分析及解决方案

在SAP MM模块项目实施中&#xff0c;很多用户对采购订单中“交货已完成”这个字段&#xff08;如下图&#xff09;的功能用途存在困惑。 比如&#xff1a;上图采购订单100个&#xff0c;已收货50个&#xff0c;另外50个因为质量或其它原因不需要供应商再交货&#xff0c;很多用…

echarts 图表设置 滚动条

效果图&#xff1a; 代码实现&#xff1a; 第一种方式&#xff1a; 通过 dataZoom 属性缩放进行配置滚动条。 //给x轴设置滚动条 dataZoom: [{start:0,//默认为0end: 100-1500/31,//默认为100type: slider,show: true,xAxisIndex: [0],handleSize: 0,//滑动条的 左右2个滑…

途乐证券-最准确的KDJ改良指标?

KDJ目标是技术剖析的一种重要目标之一&#xff0c;它是利用随机目标&#xff08;%R&#xff09;发展而来的&#xff0c;是一种反映商场超买和超卖状况的买卖目标。KDJ目标由快线&#xff08;K线&#xff09;、慢线&#xff08;D线&#xff09;和随机值&#xff08;J线&#xff…

【UE4 RTS】10-RTS HUD Setup

前言 本篇博文主要制作了一个控件蓝图界面&#xff0c;用于显示当前的游戏时间 效果 步骤 1. 新建一个名为“Widgets”的文件夹 在该文件夹中新建一个控件蓝图&#xff0c;命名为“GameTime_HUD” 打开“GameTime_HUD”&#xff0c;添加如下控件 2. 打开玩家控制器“RTS_Pla…

c++雅兰亭库 (yalantinglibs) 介绍及使用(序列化、json和结构体转换、协程)

雅兰亭库(yalantinglibs)介绍 雅兰亭库&#xff0c;名字很优雅&#xff0c;也很强大。它是阿里开源的一个现代C基础工具库的集合, 现在包括 struct_pack, struct_json, struct_xml, struct_yaml, struct_pb, easylog, coro_rpc, coro_io, coro_http 和 async_simple等功能, 也…

斗象科技-2023攻防演练必修高危漏洞集合下载(2个版本)

高危风险漏洞一直是企业网络安全防护的薄弱点&#xff0c;也成为HW 攻防演练期间 红队的重要突破口&#xff1b;每年HW 期间爆发了大量的高危风险漏洞成为红队突破网络 边界防护的一把利器&#xff0c;很多企业因为这些高危漏洞而导致整个防御体系被突破、 甚至靶标失守而遗憾出…

TepeScript 问题记录

问题 对object的所有属性赋值或清空&#xff0c;提示类型错误不能赋值 type VoiceParams {_id?: string | undefined;name: string;sex: string;vc_id: string;model_url: string;preview_url: string;isPrivate: boolean;visible: boolean; }const formData reactive<V…

AI绘画网站都有哪些比较好用?

人工智能绘画网站是一种利用人工智能技术进行图像处理和创作的网站。这些绘画网站通常可以帮助艺术家以人工智能绘画的形式快速生成有趣、美丽和独特的绘画作品。无论你是专业的艺术家还是对人工智能绘画感兴趣的普通人&#xff0c;人工智能绘画网站都可以为你提供新的创作灵感…

痛点缠身的科沃斯!如何重回“扫地茅”?

一度被称为扫地机器人代名词的“扫地茅”科沃斯&#xff0c;尽管仍处于头部阵营的头部&#xff0c;但是从多个角度来看&#xff0c;科沃斯的现状却也称得上是痛点缠身。 而对于这个曾经将扫地机产品带入国内大众视野、完成了用户认知培养的领跑者&#xff0c;到底应该如何去直…

ddia(3)----Chapter3. Storage and Retrieval

However, first we’ll start this chapter by talking about storage engines that are used in the kinds of databases that you’re probably familiar with: traditional relational databases, and also most so-called NoSQL databases. We will examine two families o…

【C语言学习】函数原型

函数原型 代码一 #include<stdio.h> void sum(int begin, int end) {int i;int sum 0;for(ibegin; i<end; i){sum sum i;}printf("%d到%d的和是%d\n", begin, end, sum); }int main() {sum(1,10);sum(20,30);sum(40,50);return 0; }代码二&#xff08;函…

Camunda 7.x 系列【12】创建流程引擎

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 2.7.9 本系列Camunda 版本 7.19.0 源码地址:https://gitee.com/pearl-organization/camunda-study-demo 文章目录 1. ProcessEngine2. 创建流程引擎2.1 Java API2.2 XML 配置2.3 Spring2.4 Spring Boot1. Pr…

大专非科班转码成功自白

大专非科班转码成功自白 文章目录 大专非科班转码成功自白初步学习进阶学习提供阶段面试阶段总结 2023年是博主从业18年以来找工作最难的一年。但程序员这个行业还是被很多毕业生青睐。就业相对比较好&#xff0c;收入相对比较高&#xff0c;虽然面临996&#xff0c;依然给很多…