什么?性能测试(PTS)居然还有这么多隐藏技能?

简介: 来和产品经理一起领略一下性能测试(PTS)中的geek极简风设计,如何从开发视角完成业务场景的链路压测。

最近性能测试服务 (PTS)的产品经理提了很多需求(郑重声明,来源于客户),虽然开发GG说已经上线了,但是我*,作为产品经理的智商愣是没找到。。。
看完开发GG的介绍和文档,我内心的OS是:“我!@#¥%... ...&&,这货估计被魂⽃罗和97残害了十 ⼏年,←→←→←→←→AC,↑↓↑↓↑↓↑↓BD,↑←↓→↑↓BC,上、上、下、下、左、右、左、 右、B、A、B、A。。。。。。”

给你们举例子,比如Header和Cookie设置:

基础版⾥Header的设置是这样的,在新增脚本或编辑脚本的页面,将光标移至请求链接上方,将出现链接的编辑选项,单击高级属性。

Header 项中 POST 请求默认添加 Content Type 请求头,值为 application/x-www-form- urlencoded。

铂⾦版里是这样的:

然后你发现大有文章。。。。

比如Header和Cookie的设置,其实直接支持批量在参数文件⾥设置了,⽽且超简单:格式为 “header::key=value”。
如果有多个 Header,请使用 & 隔开,与普通参数的区别是 Header 有⼀个前缀 header::,跟普通参数放在⼀起,没有顺序要求。而Cookie 是一种特殊的 header,也可以参照设置 header ⽅式来设置,例如:
开发GG说这样便于构造大量的压测数据,随导随⽤,而且有开发背景的⽤户一看就懂, 我。。。。。。。。

然后,远还没有结束,类似这种开发视⻆的,geek风的设计还有,⽐如业务场景⾥很常见的串行实践:

对于同⼀个业务系统,链路和链路之间存在⼀定的逻辑关系。链路串⾏主要适⽤用于这种存在参数依赖的场景。建议不要将只是逻辑上存在依赖的链路串⾏起来。

开发GG还不忘把理念也输出。

具体的他⽤了商城系统抽奖活动为例说明,本次活动会引导⽤户进⼊首⻚进⾏抽奖,预估的访问⾸页的峰值 TPS 为 10000,其中有 8000 TPS 进⾏了抽奖,抽中的概率为50%,那么会有⼤大概 4000 TPS 对商品进⾏浏览,根据历史的数据⽤户下单付款的概率在 10% 左右。我们可以抽象出“⾸⻚”、“抽奖”、“查看详情⻚”和“下单”等四个业务链路,从业务的维度来说存在⼀定的逻辑关系,但是我们进⼀步分析可以发现,除了首页之外,“查看详情页”和“下单”都依赖“抽奖”的结果。因此可以将后⾯三条链路串⾏起来。

然后怎么串起来呢?他说这⾥编排,呐,这⾥

开发GG是这么一本正经的给(hu)我(shuo)解(ba)释(dao)的:

编排是通过json格式实现的,就是数组和对象的组合,最外侧的数组就是表示并⾏的⼏个业务场景

单个场景⾥是串⾏的,然后重点来了,在单场景的数组⾥可以定义很多指令(directive),⽐如:
chain(链路)
wait(思考时间)
cookieStore(存储cookie)
cookieGet(获取cookie)
condition(条件判断)
prepare(具备监听和指挥的功能,互相关联,配合cookie的操作,⽐如需要⼏个⽤户完成登录再
进⾏其他场景的开始)
dam(集合点)

其中
chain(链路)默认就是循环执⾏,可以增加⼀个参数,只执⾏⼀次,⽐如登录场景

wait(思考时间)⽀持三种:固定时间、区间随机、正态分布,分别如下图:

cookieStore(存储cookie),⼀般在登录完成之后,如果有并⾏的场景需要共享cookie则使⽤

cookieGet(获取cookie),主要⽤于并⾏的其他场景共享使⽤

condition(条件判断),⽀持return/continue/jump,可以通过链路ID.key来获取作为判断的依据,下⾯的例⼦中这个值分别为3、4、5时对应的是return、continue、jump

prepare,这⾥的prepare就是指挥型的

这⾥的prepare是监听型的,监听上⾯这个prepare,业务侧看就是9个⽤户完成了登录就可以开始这边的业务场景了

dam(集合点),这个厉害了,适配很多真实的业务场景,秒杀、抢票、查成绩等等。

实践出真知,现在就动手吧,不客气

相关文章
|
存储 消息中间件 缓存
本地缓存Caffeine系列(三)
本地缓存Caffeine系列(三)
软件开发常用之SpringBoot文件下载接口编写(下),Vue+SpringBoot文件上传下载预览,服务器默认上传是1M,可以调节,调节文件上传大小写法,图片预览,如何预览后下次还能看到,预览写法
软件开发常用之SpringBoot文件下载接口编写(下),Vue+SpringBoot文件上传下载预览,服务器默认上传是1M,可以调节,调节文件上传大小写法,图片预览,如何预览后下次还能看到,预览写法
|
开发框架 并行计算 算法
揭秘Python并发神器:IO密集型与CPU密集型任务的异步革命,你竟还傻傻分不清?
【7月更文挑战第18天】Python并发编程中,异步IO适合IO密集型任务,如异步HTTP请求,利用`asyncio`和`aiohttp`实现并发抓取,避免等待延迟。而对于CPU密集型任务,如并行计算斐波那契数列,多进程通过`multiprocessing`库能绕过GIL限制实现并行计算。选择正确的并发模型能显著提升性能。
223 2
|
存储 安全 Go
深入理解 Go 语言中的指针类型
【8月更文挑战第31天】
191 0
|
Python
[python]使用gunicorn部署fastapi服务
[python]使用gunicorn部署fastapi服务
462 1
|
开发工具 数据安全/隐私保护 git
关于gitee的使用和svn小乌龟的安装及使用
关于gitee的使用和svn小乌龟的安装及使用
953 0
|
安全 数据安全/隐私保护 虚拟化
不使用VMTools,宿主机与虚拟机交换文件的方法(接上章)(上)
VMTool虽然方便,但毕竟是专用于虚拟机的软件,将要封装的系统不安装VMTools,易导致一些琐碎问题。下面我给大家介绍一个最常用的宿主机与虚拟机交换文件的方法,当然,比VMTools繁琐,但绝不影响系统封装。
733 0
不使用VMTools,宿主机与虚拟机交换文件的方法(接上章)(上)
|
城市大脑 达摩院 监控
阿里云交通数据中台解决方案,打造“数字化生产力”
在交通行业中,阿里云不仅具备成熟的方法论和工具,还联合高德、支付宝、阿里达摩院等,构成了一个内部协同生态,外部也积极与生态伙伴展开合作,全方位渗透交通各个领域和场景,是建设智能计算和催生智能分析的引擎。
阿里云交通数据中台解决方案,打造“数字化生产力”
|
存储 编解码 Ubuntu
uboot移植到IMX6ULL平台详细过程(上)
uboot移植到IMX6ULL平台详细过程(上)
755 0
|
Linux C语言
Linux中gcc4.8.5升级到gcc5.4.0用已经编译好的安装包升级(重点是不用编译安装,可以更省时)
如有遇到<font color=red size=4>没有网络的情况下</font>可以选择用这种方法来做,前提是要先下载好这个包。
467 0
Linux中gcc4.8.5升级到gcc5.4.0用已经编译好的安装包升级(重点是不用编译安装,可以更省时)