Jmeter+jenkins接口性能测试平台实践整理(一)

本文介绍如何搭建JMeter结合Jenkins的性能测试环境,包括配置Tomcat、设置环境变量及安装performance plugin等步骤。并通过Shell脚本实现自动化构建与测试结果分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近两周在研究jmeter+Jenkin的性能测试平台测试dubbo接口,分别尝试使用maven,ant和Shell进行构建,jmeter相关设置略。

一、Jmeter+jenkins+Shell+tomcat

安装Jenkins,JDK,tomcat,并设置环境变量,安装在Jenkins中performance-plugin插件。

1.准备测试脚本和测试数据,拷贝至Jenkins的workspace的对应的项目工作目录下:

2.Jenkins设置

1)添加构建参数

2)构建脚本

##!/bin/bash
REPORT_TIME=`date '+%Y%m%d%H%M%S'`
jmeter_basedir=/home/apache-jmeter-3.0
report_icon=$jmeter_basedir/extras/collapse.png
basedir=/var/lib/jenkins/workspace/jmeter_Param
report_jtl=$basedir/report/jtl
report_html=$basedir/report/html

echo "starting..."
#脚本参与引入通过构建参数引入
echo $threadCount
echo $rampUp
echo $durationTime
echo $sleepTime1
echo $sleepTime2
#删除多余的jtl
cd $report_jtl
rm -f *.jtl

cd $basedir
for v1 in $(ls *.jmx)
do
# REPORT_TIME=`date '+%Y%m%d%H%M%S'`
# TestReport=`ls $v1|sed 's/.jmx//g'`
# echo $TestReport
cd $jmeter_basedir/bin
sh jmeter.sh -JthreadCount=$threadCount -JRampUp=$rampUp -JDurationTime=$durationTime -n -t $basedir/$v1 -l $report_jtl/TestReport_$REPORT_TIME.jtl &
# >~/logs.log &
# xsltproc $jmeter_basedir/extras/jmeter-results-detail-report_21.xsl $report_jtl/TestReport_$REPORT_TIME.jtl > $report_html/TestReport_$REPORT_TIME.html
# sed -i "s/date not defined/$REPORT_TIME/g" grep “date not defined" -l $report_html/TestReport_$REPORT_TIME.html
# if [! -f "$report_icon"];then
# cp $jmeter_basedir/extras/collapse.png $jmeter_basedir/extras/expand.png $report_html
# fi
# if [! -d "$report_jtl"];then
# cd $WORKSPACE/report && mkdir jtl
# fi
sleep $sleepTime1
#for id in $(ps -ef|grep jmeter|grep -v grep|awk '{print $2}')
#do
#echo $id
#kill -9 $id
#done
#sleep 5
done &
sleep $sleepTime2
xsltproc $jmeter_basedir/extras/jmeter-results-detail-report_21.xsl $report_jtl/TestReport_$REPORT_TIME.jtl > $report_html/TestReport_$REPORT_TIME.html &
sleep 20
cp $report_jtl/TestReport_$REPORT_TIME.jtl $basedir/report/jtl2
cp $report_html/TestReport_$REPORT_TIME.html $basedir/report/html2
#for id1 in $(ps -ef|grep JMeter|awk '{print $2}')
#do
#echo $id1
#kill -9 $id1
#done
echo "ending..."

3)构建后操作

4)保存并构建成功后,在workspace中查看jtl和html结果。

 

关于dubbo接口性能脚本编写,jar包导出,html模版修改,请参考前期文章。

 

<think>好的,用户想了解后端接口的测试方法、工具和框架。首先,我需要整理下常见的测试方法,比如功能测试、性能测试、安全测试等。然后,工具方面,常用的有Postman、JMeter、SoapUI,自动化框架如Robot Framework和Pytest。还需要提到持续集成工具,比如Jenkins,以及断言库和Mock工具。 接下来,结合用户提供的引用内容,特别是引用[2]提到使用Postman和Robot Framework,引用[4]涉及修改配置进行测试,这些需要包含在回答里。用户可能希望知道具体的测试步骤和工具如何应用,比如如何配置环境、设计测试用例,以及如何处理身份验证的问题。 另外,用户可能对实际例子感兴趣,比如如何用Postman发送请求,或者如何编写自动化测试脚本。需要确保回答结构清晰,分点列出方法和工具,同时提供相关的问题供进步学习。还要注意引用标记的正确添加,比如在提到Postman时引用[2]和[4]。 最后,检查是否覆盖了用户关心的所有方面:方法、工具、框架,以及可能的测试流程和最佳实践。确保语言简洁,技术点准确,并且符合用户的中文要求。</think>### 后端接口测试方法、工具与框架详解 #### 、测试方法 1. **功能测试** - 验证接口输入输出的正确性,包括正常参数、边界值、异常参数等场景 - 测试接口是否符合接口文档规范[^3] - 示例:测试用户登录接口时,需覆盖正确密码、错误密码、空密码等情况 2. **性能测试** - 使用压力测试工具模拟高并发场景 - 监控响应时间、吞吐量、错误率等指标 $$ QPS = \frac{\text{请求总数}}{\text{测试时间}} $$ 3. **安全测试** - 验证身份认证机制(如JWT、OAuth2) - 检查SQL注入、XSS攻击等安全漏洞 - 若依框架示例中,通过修改`SecurityConfig.java`跳过鉴权进行测试[^4] 4. **兼容性测试** - 验证不同协议版本(如HTTP/1.1与HTTP/2) - 测试不同数据格式(JSON/XML)的兼容性 #### 二、常用工具 | 工具类型 | 代表工具 | 特点说明 | |----------------|-------------------------|-----------------------------------| | 接口调试工具 | Postman[^2]、Insomnia | 可视化界面,支持环境变量管理 | | 性能测试工具 | JMeter、LoadRunner | 支持分布式压测,可生成可视化报告 | | 自动化测试框架 | Robot Framework | 关键字驱动,支持集成CI/CD | | 协议分析工具 | Wireshark、Charles | 抓包分析,验证协议完整性 | #### 三、测试框架 1. **Pytest + Requests** ```python def test_login(): url = "https://api.example.com/login" data = {"username": "test", "password": "123456"} response = requests.post(url, json=data) assert response.status_code == 200 assert "access_token" in response.json() ``` 2. **Spring Boot Test(Java)** ```java @SpringBootTest class UserControllerTest { @Autowired private MockMvc mockMvc; @Test void testGetUser() throws Exception { mockMvc.perform(get("/user/1")) .andExpect(status().isOk()) .andExpect(jsonPath("$.username").value("admin")); } } ``` 3. **持续集成工具** - Jenkins + Allure:实现自动化测试报告生成 - GitLab CI:集成代码提交触发测试流程 #### 四、测试流程(五步法) 1. 环境准备:使用SwitchHosts切换测试环境[^1] 2. 用例设计:覆盖正向/反向场景,参考等价类划分法[^3] 3. 请求构造:设置Headers(如Content-Type、Authorization) 4. 断言验证:检查状态码、响应体、数据库数据致性 5. 结果分析:记录缺陷并输出测试报告 #### 五、身份验证处理技巧 - **JWT鉴权绕过**:在测试环境临时注释安全配置(如Spring Security的`antMatchers("/**").permitAll()`) - **OAuth2 Mock**:使用Mock Server模拟认证服务 - **Cookie注入**:通过浏览器开发者工具获取Cookie值后手动添加
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值