性能工具之Jmeter关联入门

简介: 【4月更文挑战第4天】关联是每个性能测试人员必须掌握的技能,是解决性能脚本中的"金钥匙"。

2000元阿里云代金券免费领取,2核4G云服务器仅664元/3年,新老用户都有优惠,立即抢购>>>


阿里云采购季(云主机223元/3年)活动入口:请点击进入>>>,


阿里云学生服务器(9.5元/月)购买入口:请点击进入>>>,

背景

关联是每个性能测试人员必须掌握的技能,是解决性能脚本中的"金钥匙"。

主要原理

image.png

简单的说:每次请求服务器,服务器会给客户端发送一个动态值,但服务器会每次校验客户端是否携带该值并做对比,如果每次请求携带值与发送的值是正确就放行,如果不正确就返回失败获取其他步骤。

环境搭建

django参考代码

    from django.shortcuts import render
    from django.http import HttpResponse, JsonResponse
    import time

    # Create your views here.
    def index_seven(request):
        return HttpResponse("欢迎 性能测试人员 进入开发性能架构师!")


    # Create your views here.
    def index(request):
        return render(request, "index.html")
    param = []

    # 登录
    def login(request):
        if request.method == "POST":
            username = request.POST.get('username', '')
            password = request.POST.get('password', '')
            if username == 'admin' and password == 'admin':
                timesoo = time.time()
                param.append(timesoo)
                result = {
   
   'code': 200, 'msg': 'success', "reslutselect": param[0]}
                return JsonResponse(result)
            else:
                result = {
   
   'code': 111, 'msg': 'username or password error'}
                return JsonResponse(result)
                # return render(request, 'index.html', {'error': 'username or password error!'})

    def select(request):
        if request.method == "POST":
            msg = request.POST.get('msg', '')
            res = request.POST.get('reslutselect', '')
            if msg == 'success' or res is not None:
                result = {
   
   'code': 200, 'msg': '恭喜你成功'}
                return JsonResponse(result)
            else:
                result = {
   
   'code': 111, 'msg': '恭喜未登录'}
                return JsonResponse(result)
                # return render(request, 'index.html', {'error': '恭喜你没有登录'})

路由参考代码

    from django.contrib import admin
    from django.urls import path
    from django.conf.urls import url
    from sevenapp import views

    urlpatterns = [
        path('admin/', admin.site.urls),
        url(r'^index/$', views.index),  # 添加index/路径配置
        url(r'^login/$', views.login),  # 添加简单登录
        url(r'^query/$', views.select),  # 添加简单登录
    ]

运行效果:

image.png
image.png

Jmeter脚本编写

登录
image.png

查询
image.png

关联 JSON Extractor 提取器
1、第一从响应结果获取响应的关联数据:
image.png

2、增加JSON Extractor并填写表达式
image.png

解释:

  • Names of Created variables:保存的变量名,后面使用 ${Variable names}引用 JSON Path;
  • expressions:上一步中调试通过的 json path 表达式 Match;
  • Numbers:匹配数字(0代表随机,1代表第一个,-1代表所有) ;
  • Default Values:找不到时默认值,一般设置为 NOT FOUND Compute concatenation
  • var(suffix_ALL):是否统计所有,即将匹配到的所有值保存,名为“变量名_ALL”,使用场景需要获取的值有多个,后面需要对这一组数据进行操作。

简单语法:
image.png

结果

登录查询获取结果给第二个请求
image.png

关联效果
image.png

总结

上面是最简单的操作步骤,相信大家看看就明白。

目录
相关文章
|
2天前
|
监控 数据可视化 测试技术
性能工具之JMeter+InfluxDB+Grafana打造压测可视化实时监控
【5月更文挑战第23天】性能工具之JMeter+InfluxDB+Grafana打造压测可视化实时监控
26 6
性能工具之JMeter+InfluxDB+Grafana打造压测可视化实时监控
|
3天前
|
前端开发 Java Linux
性能工具之 Jmeter 通过 SpringBoot 工程启动
【5月更文挑战第22天】性能工具之 Jmeter 通过 SpringBoot 工程启动
23 8
性能工具之 Jmeter 通过 SpringBoot 工程启动
|
5天前
|
JSON JavaScript Java
性能工具之Jmeter压测Thrift RPC服务
【5月更文挑战第21天】性能工具之Jmeter压测Thrift RPC服务
18 1
|
6天前
|
IDE Java Maven
性能工具之Jmeter扩展配置元件插件
【5月更文挑战第20天】性能工具之Jmeter扩展配置元件插件
20 1
|
6月前
|
Java 测试技术 Apache
用JMeter做接口压力测试
JMeter是Apache组织开发的基于Java的压力测试工具,它是用 Java 语言编写的
71 0
|
6月前
|
测试技术
JMeter压力测试简单例子
JMeter压力测试简单例子
72 0
|
8月前
|
XML 前端开发 测试技术
使用 jMeter 对 SAP Spartacus 进行并发性能测试
使用 jMeter 对 SAP Spartacus 进行并发性能测试
79 0
|
14天前
|
数据可视化 Java 测试技术
JMeter 如何实现 Elasticsearch 8.X 性能测试?
JMeter 如何实现 Elasticsearch 8.X 性能测试?
22 0
|
14天前
|
JSON 网络协议 Java
使用Jmeter进行功能和性能测试
使用Jmeter进行功能和性能测试
|
14天前
|
SQL Java 测试技术
Jmeter的安装与快速使用(做并发测试)
Jmeter的安装与快速使用(做并发测试)
26 0
http://www.vxiaotou.com