jmeter对乱码如何处理_JMeter读取 Excel 表中用例数据实现接口压测

传统的接口测试,都是在接口中手动输入不同用例准备的多种场景参数数据,一遍一遍的输入来执行多个不同的用例,但是现在利用excel表格准备各种类型的数据,使用Jmeter中Jmeter CSV Data Set Config参数化实现可设置的、一次性的读取excel表中多个或者全部用例设计的数据,一次性看到多个用例数据运行出相应的结果。

这样可以避免每次去更改参数值的烦恼,也减少修改参数出错的机率。这样大大减少了测试人员的工作量,并且也提高了接口测试用例的执行效率。Jmeter 读取excel数据使用的方法是使用Jmeter CSV Data Set Config参数化,使用方法如下:

01数据准备

准备数据文件,一般以 .csv,.dat 等结尾的文件,数据之间的分隔符可用 ,或者 tab。

其中,将excel文件保存成csv格式后,jmeter读取后返回的数据总是出现乱码问题,以下就是解决的办法:先制作一个excel表格,导出存为.csv格式的文件。读取txt中的数据也是类似方法。

02数据读取

使用CSV Data Set Config参数化将csv里面的数据读取,以下是CSV Data Set Config各个参数使用说明:

(1)Filename:数据文件的路径。

(2)Delimiter:数据之间的分隔符可用 ,或者 tab。

(3)Allow Quoated data: 双引号相关,例:如果参数中需包含,或者”等,该项可以选择True。

(4)Recycle on EOF: 设置为True后,允许循环取值

(5)Stop Thread EOF: 当Recycle on EOF为false并且Stop Thread EOF 为true,则读完csv文件中的记录后,停止运行,线程数及执行次数无效。

(6)Sharing Mode:共享模式:

All threads:所有线程,所有线程循环取值,线程1取第一行,线程二取下一行。

Current thread group:当前线程组,各个线程组分别循环取值。

Current thread:当前线程,该测试计划内的所有线程都取第一行。

03参数的应用

本实例是以居民端H5的XXXX接口为例,体验一下Jmeter通过获取excel中的用例数据运行一堆用例的过程,体验一下数据驱动的执行方式:

1.先准备测试数据,准备了多条不同的测试用例的数据

2.使用benshell将数据获得

0c24c91a51e236ad8a698cf411d2d307.png

3.下面是添加一个Debug sampler(里面什么也不用,设置保持默认)

Debug Sampler介绍:

使用Jmeter开发脚本时,难免需要调试,这时可以使用Jmeter的Debug Sampler,它有三个选项:JMeter properties,JMeter variables,System properties:

(1)JMeter properties和System properties:通常都选false,这两个就是JMeter和系统的属性,在Jmeter的bin的jmeter.properties中定义,一般都不会变。

(2)JMeter variables:这个是我们自已定义的变量,定义的方式有如下这些:

a) 选中测试计划(Test plan),在右边的面板上添加User Defined Variables

b) 选中线程组,右键选择 配置元件( config element)-->User Defined Variables

c) 通过后置处理器生成的变量

d)使用csv参数化的变量

4.添加一个http post接口,传参需是json格式,因此要先配置http信息头管理器

f5a4684427c522c58b766f8602d674cf.png
3bc0d1a03a51408290cd229dca3e9649.png

5.添加线程组的察看结果树

根据设置的执行用例数目,比如:100,则执行excel表中相应的100条用例数据,并输出对应的结果,也可以进行对应的压测。此时会把excel中准备的数据前100条用例都会执行一遍,如果进行压测时,则可以把循环的测试次数设置的足够大,比如:1000,查看聚合报告,就可以看到接口测试压力测试的情况了很方便。

(1)察看结果树

1386d8f65b638c2d6ce0c5d3034e3b57.png

(2)聚合报告。对接口遍历100个用例的压测,其运行得到的聚合报告图,如下:

760fd6aa6fc928e7b7ec3265fff1fe1b.png

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

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

相关文章

C# 利用.NET 升级助手将.NET Framework项目升级为.NET 6

概述.NET6 正式版本已经发布有一阵子了,今天我就体验一下如何将.NET Framework的项目升级为.NET 6.升级条件:Windows 操作系统.NET 6 SDKVisual Studio 2022 17.0 或更高版本环境准备①首先是VS2022下载,直接上微软官方网站,下载地…

城市遥感动态监测管理系统

1.系统概述 随着全国各城市数字化进程的发展,高分辨率遥感影像和数字航空影像为“数字城市”的建设提供了丰富的数据源。近年来,遥感影像的空间分辨率和光谱分辨率的明显提高,使得高分辨率遥感影像和数字航空影像的应用得到了极大的延伸。在城…

3月第4周全球域名商TOP15:万网第四 涨幅居亚

IDC评述网(idcps.com)04月03日报道:据WebHosting.info公布的最新数据显示,在3月第4周,全球域名商域名总量十五强排行榜中,美国占10个席位,成为最大赢家。其次是中国,有3家域名商上榜…

【Blog.Core开源】框架集成部门权限

(Blog.Core框架功能点概述)Blog.Core开源四年啦,一行行代码凝结了大家的热情和心血,基本功能骨架已完成,欢迎更多的公司和企业使用哟。真实公司留言盖楼可获得一对一技术指导:https://github.com/anjoy8/Bl…

[一个经典的多线程同步问题]解决方案一:关键段CS

前面提出了一个经典的多线程同步互斥问题,本篇将用关键段CRITICAL_SECTION来尝试解决这个问题。 本文先介绍如何使用关键段,然后再深层次的分析下关键段的实现机制和原理。 关键段CRITICAL_SECTION一共就四个函数,下面说一下这四个函数的原型…

服务器线程数一直增加,.NET Core中遇到奇怪的线程死锁问题:内存与线程数不停地增长...

一个 asp.net core 站点,之前运行在Linux 服务器上,运行一段时间后有时站点会挂掉,在日志中记录很多“EMFILE too many open files”的错误:Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.UvException: Error -24 EMF…

python种颜色循环_Python 实现一个颜色色值转换的小工具

需求说明 公司的 UI 设计小哥,已经转用 Zeplin 很久了。Zeplin 的设计稿展示页面的颜色色值使用十进制的 RGB 表示的,在 Android 中的颜色表示大多情况下都需要十六进制的 RGB 表示。我的数学没有好到直接看到十进制就可以心算得到十六进制的结果&#x…

bugly中批量隐藏版本

App项目使用Bugly的内测分发功能进行整包的测试,但日积月累之后,版本就会特别多。而线上同时跑的版本可能不过三个左右,那么多版本会干扰到查看崩溃、选择版本,如何隐藏呢? 右上角,更多 –> 产品设置 –…

检查点(Checkpoint)过程如何处理未提交的事务

每次我讲解SQL Server之前,我都会先简单谈下当我们执行查询时,在SQL Server内部发生了什么。执行一个SELECT语句非常简单,但是执行DML语句更加复杂,因为SQL Server要修改内存中的相关页,并在事务日志里记录整个事务。 …

机器学习工作坊 - 计算机视觉

点击上方蓝字关注我们(本文阅读时间:2分钟)活动介绍四月的 MS Learn 学堂,我们将进入机器学习专题。 本月三期 MS Learn 学堂,我们会以工作坊的形式,结合具体应用实例,带领大家实践计算机视觉、…

arcgis server 无法手动删除切片

背景 问题 场景如下: 切片放置在专门的文件服务器上,通过unc共享路径对外共享。文件服务器的OS为windows server2008R2想手动更新切片服务的切片。发现同一切片服务,有的比例级别文件夹可以删除或者重命名。有的比例级别不可以。不能删除的比…

Hadoop 2.0 中的资源管理框架 - YARN(Yet Another Resource Negotiator)

1. Hadoop 2.0 中的资源管理 http://dongxicheng.org/mapreduce-nextgen/hadoop-1-and-2-resource-manage/Hadoop 2.0指的是版本为Apache Hadoop 0.23.x、2.x或者CDH4系列的Hadoop,内核主要由HDFS、MapReduce和YARN三个系统组成,其中,YARN是一…

React Native实现js调用安卓原生代码

1 问题 实现js调用安卓原始代码,直接上代码,简单粗暴 2 代码实现 1) 实现一个继承ReactContextBaseJavaModule的类,MyToastModule.java文件如下 public class MyToastModule extends ReactContextBaseJavaModule {public MyToastModule(ReactApplicationContext reactContext)…

发布nuget包的正确姿势---cicd自动打包发布

最轻便的发布nuget包方式,方便cicd自动打包发布nuget包首先新建项目项目名随便取,这里就叫它GuiH.ClassLibrary默认即可,需要改目标版本时,等创建好再改项目创建好了随便写个接口方法namespace GuiH.ClassLibrary {public class C…

我的世界服务器物品属性,属性 - Minecraft Wiki,最详细的官方我的世界百科

属性(Attributes)是生物和玩家身上的增益/减益特性系统。属性也存在修饰符(Modifiers)中,用于调整属性的强度。属性应用[]当应用到一个物品,一个物品的修饰符将增加或减少以修正相应的属性下面的命令将给最近的玩家一把增加20( 10)点额外伤害的钻石剑&a…

分布式和微服务区别_深度解析spring cloud分布式微服务的实现

分布式系统微服务就是原来臃肿的项目拆分为多个模块互不关联。如:按照子服务拆分、数据库、接口,依次往下就更加细粒度,当然运维也就越来越难受了。分布式则是偏向与机器将诺大的系统划分为多个模块部署在不同服务器上。微服务和分布式就是作…

通过Shell开发企业级专业服务启动脚本案例(MySQL)

老男孩教育Linux高端运维班Shell课后必会考试题:企业Shell面试题10:开发企业级MySQL启动脚本说明:MySQL启动命令为:/bin/sh mysqld_safe --pid-file$mysqld_pid_file_path 2>&1 >/dev/null &停止命令逻辑脚本为:mysqld_pidcat …

React Native之js调用Android原生使用Callback传递结果给js

如果不清楚js如何调用Android原生,可以先参考我的这篇博客React Native实现js调用安卓原生代码 1 问题 上面的文章只是调用安卓原生显示Toast,但是我们一般会需要调用安卓的代码然后去拿回结果给js,但是我们知道在android层js调用的这个函数返回值必须的void,所以我们需要用到…

ENVI帮助研究人员发现金矿

本文转自:http://www.esrichina-bj.cn/2012/0319/1663.html 遥感影像能让我们实时的获取地理区域的准确信息,这些为很多石油、天然气和矿产的开采提供关键的信息,节约实地测量的成本,提高工作效率。 美国圣路易斯大学的研究人员希…

C# 使用TCP创建HTTP客户程序

首先,创建一个控制台应用程序(包),向 Web 服务器发送一个 HTTP 请求。以前用 HttpClient 类实现了这个功能,但使用 TcpClient 类需要深入 HTTP 协议。HttpClientUsingTcp 示例代码使用了以下名称空间:System System.IO System.Net.Sockets …