今天的业务场景是:
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=....等等
foreach控制器与我们写代码时候的foreach循环含义其实是一样的。依次循环获取到值,并执行foreach里面的sample。foreach里面sample的设置:
foreach完成一次循环是为每次产品增加了一次排期,需求是增加10个。在foreach的外层再加一个循环控制器即可。
以上就完成了第二个场景的设计。
上述2个脚本其实也可以用来准备测试数据,前端要看多个产品的排版显示等,都可以直接执行一下脚本,自动生成测试数据。
最后设置线程组控制加压就可以了,浪涌式、阶梯式等等