今天的业务场景是:

1.管理员登录后台---登录成功后添加一个某类型的产品---产品添加成功后,再为该产品添加10个排期。

2.管理员登录后台--登录成功后添加多个不同类型产品---产品全部添加完成后,依次为所有产品添加10个排期。

这是两种不同的场景,下面是两个场景的实现方法:

场景一:

1.登录模块,登录模块比较简单,不做记录

要求登录一次之后,进行其他操作。因此登录模块放到了仅一次控制器中

2.增加产品

产品类型分为4中,不同类型对应不同的proTypeId。将4种不同类型的产品ID放到文本文件中。

产品名字与类型一样,也可以使用读取文件的方式参数化。如果对产品名称没有具体要求的话,直接使用随机字符串的函数生成也是可以的。

在添加产品的请求中,用函数来一次读取该文件中的参数(效果就是:第一次迭代添加的是A类型的产品,第二次迭代添加的是B类型的产品,依次循环类推)

该函数在使用时要注意,必须写为:${__CSVRead(C:\Users\XXX\Desktop\producttype.txt,0)}${__CSVRead(C:\Users\XXX\Desktop\producttype.txt,next())},这样写的含义是,先读取到第一个值,之后在一次向下读取。如果只写读取下一个的函数是读不到值的

在请求产品之前,会有一个添加图片的接口。就是我们平时使用的软件中,点击上传图片之后选择图片,此时会获得一个图片的url地址(一般上传图片的都是这样的流程)。这时候是post的图片文件,如果使用抓包软件或者录制,由于是二级制的,得到的都是乱码。所以这里的参数,手动添加一下就可以了。

再用一个正则把获取到的URL 获取到就可以了。

这样就完成了添加产品的场景。

之后需要为该产品添加排期,前提是先找到这个产品的ID。由于产品添加成功后是不会返回ID回来的,所以需要去数据库中获取到这个ID ,需要一个Jdbc请求

3.增加排期

这里post的请求中,参数就需要之前数据库中查出来的id了,直接使用即可。

由于要求每个产品增加10个排期,因此添加循环控制器,设置循环次数为10 就可以了。

以上就完成了第一个场景的模拟。

场景二:

该场景与场景一的不同在于:要产品添加完成之后,再对每个产品添加多个排期。

前面登录和添加产品的步骤基本是一致的(该场景需要把添加产品的步骤放在循环控制器中),下面直接说添加排期的问题。

添加排期:前提是获取到所有产品的ID,可以参考上面图中的jdbc request,改一下sql就可以了。

这时,我们的参数id是这样的:id_1=6994a163-5d29-4fcc-a19b-752f389c76d6,id_2=....等等

idrs是这样的:idrs=[{Id=8cb7f419-6155-4ed7-847d-d4e6d17c5297}, {Id=908d37cf-d328-4ce1-b08a-76b4012dd911}..等等.]
 
可以通过idrs获取到我们的Id ,方法为${__BeanShell(vars.getObject("idrs").get(${__counter(false,count)}-1).get("Id"),finalid)}。该方法中下标是用当前迭代总数-1来表示的,会有个缺点,当迭代总数大于我们的参数个数时,就取不到值了。可以自己创建一个参数文件,但是当id炒鸡多时,这样就麻烦了。。。
 
之后换了实现方式,通过foreach控制器来循环取出id的值就可以了。

foreach控制器与我们写代码时候的foreach循环含义其实是一样的。依次循环获取到值,并执行foreach里面的sample。foreach里面sample的设置:

foreach完成一次循环是为每次产品增加了一次排期,需求是增加10个。在foreach的外层再加一个循环控制器即可。

以上就完成了第二个场景的设计。

上述2个脚本其实也可以用来准备测试数据,前端要看多个产品的排版显示等,都可以直接执行一下脚本,自动生成测试数据。

最后设置线程组控制加压就可以了,浪涌式、阶梯式等等

Jmeter 场景设计的更多相关文章

  1. jmeter场景设计实战(一)

    需求:2000用户在线,100用户并发访问首页. 和开发沟通了解了具体的需求:2000用户是在线登录状态,这2000用户中要达到100用户并发去访问首页,在这个过程中可能会有停留时间,并不是用户登录之 ...

  2. 使用jmeter做简单的场景设计

    使用jmeter做简单的场景设计 Jmeter: Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试.我之所以选择它,最重要的一点就是----开源 个人 ...

  3. 【性能测试实战:jmeter+k8s+微服务+skywalking+efk】系列之:性能测试场景设计

    说明: 本文是基于虚拟机环境配置设计的 性能测试需求 总tps≥100 每个业务的rt<500ms 持续稳定跑50万业务量 单场景 目的:找到单场景的性能问题,为容量场景提供参考,如果低于容量场 ...

  4. Jmeter场景设置与监听

    目录 Jmeter场景设置 场景运行 Jmeter测试监控 Samples:取样器运行次数(提交了多少笔业务). Jmeter场景设置 场景的概念: 场景是用来尽量真实模拟用户操作的工作单元,场景设计 ...

  5. LoadRunner脚本设计、场景设计和结果分析

    本次笔记主要记录LoadRunner脚本设计.场景设计和结果分析   1. 脚本设计       录制模式            手工模式:插入步骤.手动编写       1.1  脚本增强:     ...

  6. 【Loadrunner】初学Loadrunner——场景设计

    在使用Loadrunner的时候,常常需要使用到场景设计.但是怎么设计一个满意的场景?如何开展? 首先可以点击tools > Create Controller Scenario > OK ...

  7. lr_场景设计之知识点-集合点、loadgenerator

    1.controller原理 通过场景设计来模拟用户的真实操作并调用bugen中的脚本,再通过设置的压力机产生压力,在场景运行中实时监控用户的执行情况,tps,响应时间,吞吐量,服务器资源使用情况: ...

  8. vue移动端金融UI组件库滴滴MandMobile面向金融场景设计附功能思维导图

    vue移动端金融UI组件库滴滴MandMobile面向金融场景设计附功能思维导图 Mand Mobile是面向金融场景设计的移动端组件库,基于Vue.js实现.目前已实际应用于滴滴四大金融业务板块的1 ...

  9. loadrunner 场景设计-学习笔记之性能误区

    场景设计-学习笔记之性能误区 by:授客 QQ:1033553122 场景假设: 每个事务仅包含一次请求,执行10000个并发用户数 性能误区: 每秒并发用户数=每秒向服务器提交请求数 详细解答: 每 ...

随机推荐

  1. Python开发第五篇

    面向对象程序设计 面向过程编程:就是分析问题的解决步骤,按部就班的编写代码解决问题 函数式编程:就是把代码封装到函数中,然后在使用时调用封装好的函数 面向对象编程:把一类事物所共有的属性和行为提取出来 ...

  2. 页面dom事件防止失效的一种写法

    经常我们写事件是这样的 $('.day').on('click', function () { some(); }); 但是这样在spa模式下经常容易出现页面切换后事件失效的问题, 可以采用这样的写法 ...

  3. 解决Jenkins的错误“The Server rejected the connection: None of the protocols were accepted”

    1. 配置节点,配置好节点后,在节点机上运行已下载文件,双击执行,提示"The Server rejected the connection: None of the protocols w ...

  4. 20145238-荆玉茗 《Java程序设计》第五次实验报告

    实验五 Java网络编程及安全 一.实验内容 1.运行下载的TCP代码,结对进行,一人服务器,一人客户端: 2.利用加解密代码包,编译运行代码,一人加密,一人解密: 3.集成代码,一人加密后通过TCP ...

  5. 通过ODBC接口访问人大金仓数据库

      国产化软件和国产化芯片的窘境一样,一方面市场已经存在性能优越的同类软件,成本很低,但小众的国产化软件不仅需要高价买入版权,并且软件开发维护成本高:另一方面,国产软件目前普遍难用,性能不稳定,Bug ...

  6. ztree3.5中checkbox无法取消选中的问题解决

    使用jquery的tree插件ztree,用到复选框的功能 var setting = { check: { enable: true }, data: { simpleData: { enable: ...

  7. Login用户登录(Python实现)

    username_fault = "isuperSun" #程序存储用户名和密码 password_fault = " counts = 0 while counts&l ...

  8. 瓣呀,一个基于豆瓣api仿网易云音乐的开源项目

    整体采用material design 风格,本人是网易云音乐的粉丝,所以界面模仿了网页云音乐,另外,项目中尽量使用了5.0之后的新控件. 项目整体采用mvp+rxjava+retrofit 框架,使 ...

  9. 多进程(multiprocessing module)

    一.多进程 1.1 多进程的概念 由于GIL的存在,python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程.Python提供了非常好 ...

  10. 在ubuntu上安装subline

    Sublime Text is a most popular, lightweight and smart cross-platform text and source code editor wit ...