jmeter性能测试案例:电商系统并发订单测试

场景描述:本案例主要实现多用户同时提交订单,以检测系统对瞬时压力的响应情况。具体流程包括用户登录-添加商品-提交订单。涉及多个接口联动和参数处理,步骤如下:

第一步,登录用户

  1、新建“下订单”线程组(测试计划-线程-线程组),线程数可设置并发数,比如图中30代表30个用户并发执行,ramp-up代表加载30个用户使用时间

  

 

  2、添加cookie管理器(选中线程组-添加-配置元件-httpcookie管理器)

 

 

 

   3、创建用户登录(选中线程组-添加-取样器-http请求),下图箭头注明了http请求方式,路径里填写request url,基本内填写请求的参数。参数内telphone即用户登录信息,这里采取直接读取csv文件获取用户账号

 

 

  读取csv文件的方法(选中登录用户--添加-配置元件-CSV 数据文件设置)设置好变量名和文件路径,CSV文件内容右图。然后在请求即“用户登录”telphone参数内填入变量值“${user}”即可

      

 

  4、登录成功后,需要返回用户鉴权信息给后面的请求使用,分析登陆后的返回值,找到鉴权信息,把这部分内容提取后做成变量

 

   提取并设置成变量的方法(选中登录用户--添加-后置处理器-正则表达式处理器),根据上图可知,token的内容在jwttoken和logiflag之间,如此,正则表达式可写成"JwtToken":"(.+?)","LoginFlag"

如此,鉴权信息变量化,变量名称“JwtToken”

 

 

 

 步骤二:获取商品信息

 

 

   1、创建http请求,获取商品列表,且取第一个商品的信息

 

 

  2、根据“1”返回结果,把价格和商品id提取出来设置成变量,这里需要注意对请求头的处理,请求头需要带入“登录步骤”获取的鉴权信息,即前文的JwtToken,否则获取列表数据非用户登录后数据,导致后面无效

 

 

  头信息处理(选中分页获取商品列表 --添加-配置元件-HTTP信息头管理器),信息头包括文本类型,host和鉴权信息

 

   

   3、保存直接下单数据到购物车请求,提取“CartInfo”值,这个值是提交订单接口必备的参数之一,后面几个接口都是如此,中间的参数设置已经返回值提取和变量化不再累赘

 

  4、提取“addId”,客户收地地址信息

 

 

  5、获取(计算)运费,提取运费

 

 

步骤3:订单请求,步骤2内容基本是给步骤3提交订单准备数据,可以看到,这个请求的参数里有好几个变量,实际就是步骤2里的请求提取的数据

 

 

 以上,一个完整的用户-获取商品数据-提交订单流程完成了

 

步骤4:设置并发环境,比如我们需要30个用户同时提交订单

  1、线程组设置30

 

  2、为了实现30个用户同时提交订单,选中创建订单步骤,设置数量与线程数一致(添加-定时器-Synchronizing Timer)

 

 

 

 

 

 

 

    3、在最后面加上察看结果树、聚合报告、用表格察看结果等结果显示(线程组-添加-监听器),如此,整个jmeter脚本环境就算配置完成

 

 

步骤5:执行,点上面绿色的按钮开始执行

  

 

 

步骤6:查看结果

  1、察看结果树的结果

 

 

  2、聚合报告的结果

 

 

  3、用表格察看结果的结果,这个报告可以看出下订单接口所有的用户的请求时间,所有用户的请求时间基本误差在1秒内,如果用户数越大,差异应该越大,这个跟负载机的性能应该有关系

 

 

 

 

 完成!

posted @ 2020-12-18 18:04  小贝书屋  阅读(5229)  评论(0编辑  收藏  举报