性能工具之Jmeter关联入门

x33g5p2x  于2021-10-31 转载在 其他  
字(1.9k)|赞(0)|评价(0)|浏览(706)

背景

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

主要原理

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

环境搭建

django参考代码

  1. from django.shortcuts import render
  2. from django.http import HttpResponse, JsonResponse
  3. import time
  4. # Create your views here.
  5. def index_seven(request):
  6. return HttpResponse("欢迎 性能测试人员 进入开发性能架构师!")
  7. # Create your views here.
  8. def index(request):
  9. return render(request, "index.html")
  10. param = []
  11. # 登录
  12. def login(request):
  13. if request.method == "POST":
  14. username = request.POST.get('username', '')
  15. password = request.POST.get('password', '')
  16. if username == 'admin' and password == 'admin':
  17. timesoo = time.time()
  18. param.append(timesoo)
  19. result = {'code': 200, 'msg': 'success', "reslutselect": param[0]}
  20. return JsonResponse(result)
  21. else:
  22. result = {'code': 111, 'msg': 'username or password error'}
  23. return JsonResponse(result)
  24. # return render(request, 'index.html', {'error': 'username or password error!'})
  25. def select(request):
  26. if request.method == "POST":
  27. msg = request.POST.get('msg', '')
  28. res = request.POST.get('reslutselect', '')
  29. if msg == 'success' or res is not None:
  30. result = {'code': 200, 'msg': '恭喜你成功'}
  31. return JsonResponse(result)
  32. else:
  33. result = {'code': 111, 'msg': '恭喜未登录'}
  34. return JsonResponse(result)
  35. # return render(request, 'index.html', {'error': '恭喜你没有登录'})

路由参考代码

  1. from django.contrib import admin
  2. from django.urls import path
  3. from django.conf.urls import url
  4. from sevenapp import views
  5. urlpatterns = [
  6. path('admin/', admin.site.urls),
  7. url(r'^index/$', views.index), # 添加index/路径配置
  8. url(r'^login/$', views.login), # 添加简单登录
  9. url(r'^query/$', views.select), # 添加简单登录
  10. ]

运行效果:

Jmeter脚本编写

登录

查询

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

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

解释:

  • 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”,使用场景需要获取的值有多个,后面需要对这一组数据进行操作。

简单语法:

结果

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

关联效果

总结

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

相关文章