WebBenchmark之动态数据测试

栏目: IT技术 · 发布时间: 5年前

内容简介:对于很多WebApi管理工具来说,针对接口的性能测试都拿固定的数据进行一个循环式的测试;这种测试只能确保当前数据下的有效性,但在性能测试中往往需要压测不同的数据分布,这样能够更准确地反映在不同数据下系统的处理能力。WebBenchmark工具引入了值函数的概念,值函数是一系列的数据自定义函数;通过它可以让性能测试数据 覆盖面更广,从而达到更好性能测试结果。工具默认提供一些基础函数:以上是工具提供的一些基础函数,实际应用中也可以根据自己的需要扩展自己的一些函数;这些函数可以直接定义在querystring,h

对于很多WebApi管理 工具 来说,针对接口的性能测试都拿固定的数据进行一个循环式的测试;这种测试只能确保当前数据下的有效性,但在性能测试中往往需要压测不同的数据分布,这样能够更准确地反映在不同数据下系统的处理能力。

WebBenchmark工具引入了值函数的概念,值函数是一系列的数据自定义函数;通过它可以让性能测试数据 覆盖面更广,从而达到更好性能测试结果。工具默认提供一些基础函数:

  • @[date] 返回当前日期

  • @[date(yyyy-MM-dd)] 返回指定格式的日期

  • @[date(HH:mm)] 返回时间

  • @[number] 返回一个随机数

  • @[number(1,100)] 返回一个指定区间的随机数

  • @[nextstr(userid)] 从一个字符列表中随机返回一项数据

  • @[guid] 获取一个GUID值

以上是工具提供的一些基础函数,实际应用中也可以根据自己的需要扩展自己的一些函数;这些函数可以直接定义在querystring,header或提交的数据中,定义后这些相关值每次请求都会从函数中获取相应的数据。接下来介绍一下函数的使用:

Webapi定义

下面用aspcore定义一个webapi项目来对值函数定义的测试,以下是一个简单的webapi接口

[ApiController]

[Route("[controller]")]

public class WeatherForecastController : ControllerBase

{

private static readonly string[] Summaries = new[]

{

"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"

};


private readonly ILogger<WeatherForecastController> _logger;


public WeatherForecastController(ILogger<WeatherForecastController> logger)

{

_logger = logger;

}

[HttpPost]

public object Post([FromBody]Property item)

{

return item;

}


[HttpGet]

public IEnumerable<WeatherForecast> Get(int count=10)

{

var rng = new Random();

return Enumerable.Range(1, count).Select(index => new WeatherForecast

{

Date = DateTime.Now.AddDays(index),

TemperatureC = rng.Next(-20, 55),

Summary = Summaries[rng.Next(Summaries.Length)]

})

.ToArray();

}

}

public class Property

{

public string Name { get; set; }


public string Value { get; set; }

}

GET方法测试

方法提供一个count参数,根据参数值返回对应数量的数据。接下来看一下这个测试的内容是怎定义的。

WebBenchmark之动态数据测试

在地址参数中定义一个count变量,然后在值里通过@[number(1,10)]来产生一个1-10之间的随机数。

WebBenchmark之动态数据测试

WebBenchmark之动态数据测试

以上是针对这测试定义的两次测试结果,可以看到每次产生的count值都有所不同。

POST方法

值函数不但可以用在Url参数和Header上,也可以用在提交的参数上,包括json的成员属性中。

WebBenchmark之动态数据测试

可以在提交内容的任意地方引入值函数,以上是测试是在Value值中随机一个数值;

WebBenchmark之动态数据测试

WebBenchmark之动态数据测试

可以看到每次提交的数据都有所不同。

nextstr函数

这是一个组合函数,它的参数需要一个变量,接下来定义一个User列表的表量,并在数据提交的时候随机一个用户名。首先需要变量列表中添加一个列表变量

WebBenchmark之动态数据测试

接下来不可以通过nextstr函数随机这个列表变量

WebBenchmark之动态数据测试

接下来做多次测试

WebBenchmark之动态数据测试

WebBenchmark之动态数据测试

这样每次提交的name和value值都是通过函数随机生成了。

如果你使用这工具进行webapi管理测试,又需求一些新的值函数可以把需求提交到

https://github.com/IKende/WebBenchmark/issues

BeetleX

开源跨平台通讯框架(支持TLS)
轻松实现高性能:tcp、http、websocket、 redis 、rpc和网关等服务应用

https://beetlex.io

WebBenchmark之动态数据测试


以上所述就是小编给大家介绍的《WebBenchmark之动态数据测试》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

风吹江南之互联网金融

风吹江南之互联网金融

陈宇(江南愤青) / 东方出版社 / 2014-6-1 / 55元

随着中国互联网金融浪潮高涨,P2P、众筹、余额宝、微信支付等新生事物层出不穷,加之大数据等时髦概念助阵,简直是乱花渐欲迷人眼,令媒体兴奋,公众狂热。那么,互联网金融真的能“颠覆”传统金融吗?当互联网思维对撞传统金融观念,是互联网金融的一统天下,还是传统金融业的自我革新?究竟是谁动了金融业的奶酪? 本书作者早期试水创立具有互联网金融雏形的网站,后来成为互联网金融的资深投资人,基于其多年在该领域......一起来看看 《风吹江南之互联网金融》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具