jmeter 接口自动化测试方案一 (EXCEL数据驱动版本)

Jmeter的数据驱动 一、简介 数据驱动测试,即是分离测试逻辑与测试数据,通过如excel表格的形式来保存测试数据,用测试脚本读取并执行测试的过程。 有的时候会有大量的测试脚本与测试数据内聚在一起,使得我们的测试脚本的可移植性及可维护性变得很不好,所以采取了csv格式表格保存测试数据来驱动测试的方式。这样也方便对脚本的移植和维护。 二、操作 1、添加一个线程组 2、线程组下新增循环控制器,循环次数设置为永远 3、循环控制器下新增CSV Data Set ConFig控件 Filename:csv文. 阅读详情

jmeter是一个非常轻巧好用的性能测试工具,当然也可以做接口自动化测试,这里面我们主要想做一个通用的执行引擎

这么做的好处就是我们不用再关注测试脚本的内容,属于用测试用例的数据去驱动我们执行的走向,这个适合单个接口的测试,但是这个肯定不是很灵活适合代码基础弱一些的同学直接使用,真正的灵活还是要代码去做


一.首先我们要有一个接口测试用例存放的地方,我们这里用EXCEL模板管理,里面包含用例名、协议、入参、预期结果、SQL、数据库预期结果,那么我们想在这里面写完可以马上执行测试用例,并且这个执行引擎是比较通用的
二.接下来创建执行计划,先看下做好的
三.下面是具体的Jmeter设置
  • 1.设置线程,我们要从参数化文件里面读取用例集,并且以用例的数量作为执行结束,所以线程这里面要一致循环

  • 2.设置参数化文件,主要4个参数 文件路径、是否允许循环取值、读取结束是否停止,我们是按照参数化文件用例的数据决定运行多少次,所以不能允许循环取值,读到最后一行停止测试,里面通过一些变量获取参数的值,具体对应关系大家参考用例模板

  • 3.加上协议控制器,具体是哪个协议根据测试用例里面的匹配

  • 4.对于http的请求分为get、post等多个方法,要加上方法控制器,3.1的jmeter应该不用了

  • 5取样器的设置全部参数化

  • 6那么需要做一些断言的处理,这里面弄的简单的响应断言,当然也可以根据情况增加其他的断言

  • 7下面加上数据库的校验,首先要配置数据库连接配置,取样器后面加上SQL后置处理器


  • 8数据库的断言我们需要用后置处理器的beanshell处理,检查是否校验数据库,校验的话通过测试用例里面的预期结果JSON和数据库实际的结果对比,不一致修改结果,code506是我自己定义的code码,即使断言过了,也会修改当前的结果为false,这里用到了fastjson所以需要导入包
import com.alibaba.fastjson.JSON;   //引入JSON的类
String checkDb=vars.get("checkDb");  //获取是否校验数据库
log.info("checkDb:"+checkDb);    //为了方便调试 我把信息输出了
if(checkDb.equals("true")){   //判断是否检查数据库
    log.info("进入校验数据库"); //为了方便调试
    String preDbMap=vars.get("DbMap"); //拿到预期数据库的值
   int paramSize =bsh.args.length;  //它是一个数组 
   if(paramSize>0){       //大于0 说明是有预期结果的
    preDbMap =bsh.args[0];
    }else{
        preDbMap="没有预期数据库结果!!!!!";  //小于0 认为没有预期结果
    }  
    preDbMap =preDbMap.trim();  //把预期结果去掉空格
    log.info("preDbMap:"+preDbMap); //为了方便调试
    List results=vars.getObject("resultList");  //拿到数据库返回的List对象,是查询数据库之后的数据
    log.info("results对象:"+results);    //为了方便调试
    if(null!=results){  //如果results 等于null 说明数据库没有查询到数据,可能是绑定或者插入没有成功
        int size=results.size();     //获取他的长度
        log.info("results的SIZE:"+size); //为了方便调试
        if(size>0){      
            log.info("进入到SIZE了:");
            for(Map m:results){   //因为返回的List对象里面是一个MAP,所以是key和value的形式,可以用MAP的方式遍历循环
                String dbMap =JSON.toJSONString(m); //拿到第一个对象的Map 进行转JSON字符串
                dbMap =dbMap.trim(); //去掉空格
                log.info("数据库JSON:"+dbMap); //为了方便调试
                if(!preDbMap.equalsIgnoreCase(dbMap)){  //用预期的JSON串和查询到的结果JSON串进行对比
                    //如果不一样的情况下,说明数据库的断言失败,可能是程序的问题
                    String result =prev.getResponseDataAsString();   //拿到实际结果的值,用于存放到返回数据中
                prev.setResponseCode("506");            //我们自定义了一个CODE码,告诉结果显示的CODE是这个
                    prev.setSuccessful(false);   //设置结果为错误
                    prev.setResponseMessage("接口断言通过,数据库校验未通过");  //设置一个提示信息,大概是说明原因导致的
                    //写入结果返回的结果,还有数据库校验未通过,我们的预期数据库的值是,实际的值是,加上这个是为了方便定位问题
            prev.setResponseData(result+",\n数据库校验未通过,\n预期值:"+preDbMap+",\n实际值:"+dbMap);
                    }       
                }       
        }else{
            //当SIZE没有大于0的时候,说明也没有查询出来数据,可能没有绑定成功。
            log.info("没有到SIZE了:");
            //设置结果为错误
            prev.setSuccessful(false);
            //设置提示信息
            prev.setResponseData("数据库没有返回信息,接口result:"+result);
        }
    }else{
        log.info("result为null");
            prev.setSuccessful(false);
            prev.setResponseData("数据没有返回信息,接口result:"+result);
        }
}else{
    //当checkDb不等于true的情况下,可能是用户设置了这条用例不需要检查数据库
    log.info("没有进入判断");
    }

  • 9.我们通过查看结果树查看报告,大家看左侧的树就是我们的用例名称,具体的响应结果断言是通过的,但是数据库校验没有通过


10.邮件报告,这个邮件用ant 去做的,不过需要修改些东西,下个文章在介绍,给大家先看下效果,邮件有两部分,邮件正文和附件(详细的HTML报告)
天花板级,接口自动化测试Yaml文件+Excel数据驱动(史上最细) Yaml文件+接口自动化首先安装好yaml, 命令:pip install PyYAML第一步:新建yaml文件,并写入接口数据新建yaml文件写入接口所属数据。 阅读详情

相关推荐

JMeter数据驱动测试:从Excel读取用例实现接口自动化

数据驱动测试是自动化测试的核心模式,其原理是将测试数据与测试逻辑分离,通过外部文件管理用例,提升脚本复用性和维护性。这一技术价值在于实现了测试脚本与数据的解耦,使非技术人员也能参与用例维护,大幅降低维护成本。在接口自动化测试场景中,JMeter作为主流性能与接口测试工具,常需处理复杂多变的业务参数和场景。通过引入jxl.jar等组件,结合BeanShell或JSR223脚本,可以灵活读取Excel等结构化文件,将用例数据动态注入HTTP请求参数和断言中,从而实现高效、可维护的自动化测试流程。本文聚焦JMet

weixin_42529328的博客 273

Jmeter接口自动化测试:基于JSR223与Excel的数据驱动实践

接口自动化测试是提升软件质量与研发效能的关键实践,其核心在于实现测试数据与脚本的分离。数据驱动测试通过将用例数据外置管理,使得测试逻辑与数据解耦,从而大幅提升用例的可维护性和复用性。这一模式的技术价值在于,它让测试脚本成为可复用的“引擎”,而用例数据则能灵活适配不同场景,是实现持续测试与CI/CD集成的基石。在具体技术选型上,Jmeter作为广泛使用的性能与接口测试工具,结合其JSR223元件的脚本扩展能力,能够灵活读取外部数据源(如Excel、JSON),构建出强大的数据驱动测试框架。本文聚焦于Jmete

weixin_26850069的博客 342

Excel与Robot Framework结合实现WebService接口自动化测试

接口自动化测试是软件质量保障的关键环节,其核心在于通过脚本模拟用户操作,自动验证接口功能与性能。其原理是通过测试框架驱动,发送请求并验证响应,从而实现测试过程的标准化与可重复性。这一技术的价值在于提升测试效率、保障回归测试覆盖率,并促进持续集成实践。在应用场景上,尤其适合WebService这类基于HTTP/SOAP协议的接口测试。本文聚焦于如何利用Excel管理测试数据,结合Robot Framework这一关键字驱动框架,构建一套协作友好、易于维护的自动化测试方案,有效解决测试数据与脚本逻辑耦合、用例维

benben 2324

jmeter+Java+Excel数据驱动接口自动化--提供免费beanshell代码和用例模板

1.用Excel存测试用例,从Excel取用例,2.在jmeter进行执行3…执行完用例后把结果存进Excel。

qq_42873925的博客 1641

JMeter接口自动化测试实战:从登录接口到CI/CD集成

接口自动化测试是现代软件质量保障的核心环节,它通过模拟客户端请求自动验证API功能,旨在提升测试效率与软件可靠性。其原理在于利用脚本替代人工,实现测试用例的批量、快速、可重复执行。在技术选型上,JMeter凭借其广泛的协议支持、线程组模型和易于集成的特点,成为构建数据驱动测试框架的优选工具。JMeter通过CSV数据文件配置元件实现参数化,结合JSON断言精准校验响应,能够有效覆盖业务正向与异常场景。这种自动化方案的价值在于将测试活动左移,并融入持续集成流程,为构建高效、可维护的测试体系提供了工程实践基础。

weixin_33749131的博客 415

JMeter接口自动化测试:CSV数据驱动与批量执行实战指南

接口自动化测试是软件测试工程中的重要环节,其核心在于通过脚本模拟用户行为,自动验证接口功能与性能。数据驱动测试(DDT)作为一种关键实现方式,将测试数据与测试逻辑分离,通过外部数据源(如CSV文件)动态驱动测试执行,显著提升了测试用例的复用性和维护效率。JMeter作为广泛使用的性能与功能测试工具,其内置的CSV Data Set Config元件能够高效读取结构化数据,结合线程组实现数据遍历,从而完成批量接口请求与验证。这种方案尤其适用于需要覆盖大量参数组合的场景,例如用户登录、商品查询等,能够将测试工程

weixin_33743661的博客 311

Jmeter接口自动化测试读取用例(超详细)

测试结果文件如下

huace3852的博客 434

基于ZYNQ7020芯片(黑金开发板AX7020)之AXI-FULL DDR的PL与PS交互操作。

在该工程中我们使用了PS端的串口接收功能,PS端串口接收和发送分别有一个64字节的FIFO,但是因为串口接收阈值设置为16,所以固定接收16个字节数据后才会发生中断。此测试工程得到以前知识的总结和各大网友的支持,只希望可以为学习的你更进一步,大家一起学习才是真的开心。加油,国产芯片之路。

landyjzlai的博客 3189

jmeter+exexl实现接口自动化

jmeter+execl实现接口自动化

weixin_46043193的博客 4768

Ansys Icepak:通过 ECAD 导入和非共形网格划分掌握电子冷却

通过将 Icepak 与 HFSS(用于高频电磁学)、Ansys Mechanical(用于结构分析)和 Ansys Fluent(用于流体动力学)等 Ansys 产品相结合,工程师可以在单个工作流程中仿真电子系统的完整行为,从热和电气动力学到机械和流体动力学。精细网格可以应用于关键区域,而在不太重要的区域使用较粗的网格,从而在不牺牲精度的情况下加快仿真速度。这些功能使 Ansys Icepak 成为从事复杂电子设计的工程师不可或缺的工具,可实现更精确的热分析并缩短开发时间。用于高效仿真的非共形网格划分。

jkh920184196的博客 1393

YOLOv8中Anchor-Based、Anchor-Free及样本分配策略

本文主要介绍yolov8中的anchor机制与样本分配策略的静态策略和动态策略

qq_52889317的博客 2211

如何使用Jmeter读写Excel文件实现接口自动化

** 如何使用Jmeter读写Excel文件实现接口自动化 ** 首先 你得安装一个最新版的Jmeter。这里就不详述Jmeter的下载安装了。 1、下载解压了Jmeter后,到本站这里点击下载独写excel工具包和Jmeter脚本范例 或直接访问:https://download.youkuaiyun.com/download/hhyangel372/40713507 2、解压工具包,把其中的JmeterExcelUtils.jar和org.json.jar这两个jar包放到Jmeter根目录的lib\ext目录下,

hhyangel372的博客 1万+

深入解析ChangeFormer:基于Transformer的孪生网络在遥感变化检测中的创新应用

本文深入解析了ChangeFormer这一基于Transformer的孪生网络在遥感变化检测中的创新应用。通过分层Transformer编码器、特征差异计算模块和轻量级MLP解码器的设计,ChangeFormer在LEVIR-CD数据集上取得了90.4%的F1分数,显著优于传统卷积网络。文章还详细探讨了工程化实现、训练调参和模型部署的优化策略,为遥感变化检测领域提供了新的技术范式。

weixin_29051811的博客 731

用Jmeter进行接口自动化测试工作流程

原文转自:https://blog.youkuaiyun.com/jinganglong123/article/details/51122713在测试负责人接受到测试任务后,应该按照以下流程规范完成测试工作。2.1    测试需求分析产品开发负责人在完成某产品功能的接口文档编写后,在核对无误后下发给对应的接口测试负责人。测试负责人拿到接口文档需要首先做以下两方面的工作。一方面,测试人员要对接口文档中各个接口的...

LAMO 8594

瑞萨RA6M4平台I2C驱动移植实战:MPU6050传感器集成指南

本文详细介绍了在瑞萨RA6M4平台上进行I2C驱动移植并集成MPU6050传感器的实战指南。通过FSP配置工具添加I2C主栈,适配MPU6050官方驱动,实现传感器数据读取与调试,为嵌入式开发提供完整的解决方案。

banana的博客 109

步进电机梯形加减速算法的实现

步进电机梯形加减速算法的实现

m0_69251699的博客 1318

Jmeter----excel数据驱动接口自动化测试

1简介 数据驱动测试,即是分离测试逻辑与测试数据,通过如excel表格的形式来保存测试数据,用测试脚本读取并执行测试的过程。 2 数据驱动与jmeter接口测试 我们已经简单介绍了接口测试参数录入及测试执行的过程,因为大量的测试脚本与测试数据内聚在一起,使得我们的测试脚本的可移植性及可维护性变得很不好,所以我们接下来采取了csv格式表格保存测试数据来驱动测试的...

java2013liu的博客 3108

别再瞎改网络结构了!解决YOLO小目标检测痛点,我用这招把mAP提了15%

本文基于我7年工业PCB缺陷检测、无人机航拍、安防监控项目的一线落地经验,针对YOLO小目标检测最痛的「漏检率高、特征丢失、精度难提升」三大核心问题,拆解出。本文全程配套小目标特征丢失原理图、分块训练流程图、切图前后效果对比图、mAP提升柱状图、多方案性能对比表等可视化内容,从YOLO天生不擅长小目标的底层根源、方案核心原理、可直接复制的代码实现,到工业场景实测验证、新手必踩的10个坑位避坑指南,全链路讲透。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 387

【Jmeter篇】1小时轻松搞定项目接口自动化测试与数据驱动

之前我们的用例数据都是配置在JmeterHttp 请求中,每次需要增加,修改用例都需要打开 jmeter 重新编辑,当用例越来越多的时候,用例维护起来就越来越麻烦,有没有好的方法来解决这种情况呢? 其实我们可以将用例的数据存放在 csv 文件中,然后通过 csv 文件配置来读取用例中的数据,执行测试。用例数据如下图所示: 用例设计 创建用例文件:login.csv ...

专业资深测试者,多年质量管理经验,浪迹网游、金融、房产、招聘及海外行业多年,CDSN百万原创阅读,公众号500+原创文章,提倡测试左移、风险、越权、假设、探索测试,喜欢用抽象思维模式思考和技术探讨,自动化、性能、安全测试实施者,感谢关注! 3284

C++之2048小游戏 第二期

游戏会有初始化、绘制界面、处理输入、更新游戏状态、判断胜负等部分。所以,可能需要一个二维数组来表示4x4的网格,存储每个格子的数值。然后,需要处理键盘输入,尤其是方向键的控制,这可能需要使用EasyX的键盘事件处理函数。然后,关于图形绘制部分,每个格子的大小、颜色、数字的显示都需要设计。不同的数字对应不同的颜色,比如2是浅色,4稍深,以此类推。可能需要一个函数根据数字的值返回对应的颜色,然后在绘制时调用。接下来,处理数字的移动和合并逻辑。这是比较复杂的部分。

Lucky_Glory的博客 804

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

jmeter+ant实现的接口自动化测试

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

2301_79535544的博客 1323

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

一份详细的JMeter-接口自动化测试(数据驱动)教程,相信你会喜欢!

大家好,我是艺霏,今天我们来分享JMeter-接口自动化测试(数据驱动)的内容,满满的干货大家马上准备接收吧。之前我们的用例数据都是配置在HTTP请求中,每次需要增加,修改用例都需要打开JMeter重新编辑,当用例越来越多的时候,用例维护起来就越来越麻烦,有没有好的方法来解决这种情况呢?我们可以将用例的数据存放在csv文件中,然后通过csv文件配置来读取用例中的数据,执行测试。 一:设置测试用例,创建用例数据文件:testcase.csv 用例名称变量含义: ${caseSeq}:用例编号 ${apiTyp

别人的故事,是参考答案,而不是标准答案 1122

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

ant jmeter 原理_基于jmeter+ant实现的接口自动化测试

jmeter+ANT接口自动化测试框架项目说明本框架是一套基于jmeter+Ant+Excel+Python而设计的数据驱动接口自动化测试框架,jmeter 作为执行器,Ant 作为构建工具,进行构建测试,本框架无需你使用代码编写用例,测试用例存储在csv中,在csv中可以进行接口用例编写,接口断言,用例运行控制。技术栈jmeterAntPython环境部署1、安装JDK2、安装Jmeter3、安...

weixin_39855186的博客 327

Jmeter接口自动化测试详解

之前我们的用例数据都是配置在HTTP请求中,每次需要增加,修改用例都需要打开JMeter重新编辑,当用例越来越多的时候,用例维护起来就越来越麻烦,有没有好的方法来解决这种情况呢?我们可以将用例的数据存放在csv文件中,然后通过csv文件配置来读取用例中的数据,执行测试。用例名称变量含义:${caseSeq}:用例编号${apiType}:api 类型${apiSeq} :api 版本号${apiName}:api 名称。

HUA1211的博客 1268

接口自动化测试工具选型指南:Postman、JMeter与Python方案深度对比

接口自动化测试是软件质量保障的核心环节,其原理是通过脚本模拟用户操作,自动执行接口请求并验证响应结果,从而实现测试过程的标准化与高效化。这项技术的价值在于能够显著提升回归测试效率,快速发现接口层面的功能与性能问题,是DevOps和持续交付流程中不可或缺的一环。其应用场景广泛,从单接口的功能验证到复杂的多接口业务流测试,再到性能基准测试,都离不开自动化测试框架的支持。本文聚焦于当前主流的三种实现路径:以图形化和协作为核心的Postman、源于性能测试的JMeter“瑞士军刀”,以及基于Python代码的高度可

weixin_30617797的博客 329
上一篇: Fiddler-抓不到forefox火狐浏览器包
下一篇: 利用jenkins+maven部署java应用到远程服务器
java2013liu
博客等级 码龄14年 141粉丝 61原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值