性能工具之Jmeter关联入门

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

背景

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

主要原理

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

总结

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

目录
相关文章
|
9月前
|
前端开发 Java jenkins
Jmeter压力测试工具全面教程和使用技巧。
JMeter是一个能够模拟高并发请求以检查应用程序各方面性能的工具,包括但不限于前端页面、后端服务及数据库系统。熟练使用JMeter不仅能够帮助发现性能瓶颈,还能在软件开发早期就预测系统在面对真实用户压力时的表现,确保软件质量和用户体验。在上述介绍的基础上,建议读者结合官方文档和社区最佳实践,持续深入学习和应用。
1906 10
|
11月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1509 23
|
9月前
|
监控 Java 数据挖掘
利用Jmeter工具进行HTTP接口的性能测试操作
基础上述步骤反复迭代调整直至满足预期目标达成满意水平结束本轮压力评估周期进入常态监控阶段持续关注系统运转状态及时发现处理新出现问题保障服务稳定高效运作
1226 0
|
测试技术 数据库 UED
Python 性能测试进阶之路:JMeter 与 Locust 的强强联合,解锁性能极限
【9月更文挑战第9天】在数字化时代,确保软件系统在高并发场景下的稳定性至关重要。Python 为此提供了丰富的性能测试工具,如 JMeter 和 Locust。JMeter 可模拟复杂请求场景,而 Locust 则能更灵活地模拟真实用户行为。结合两者优势,可全面评估系统性能并优化瓶颈。例如,在电商网站促销期间,通过 JMeter 模拟大量登录请求并用 Locust 模拟用户浏览和购物行为,可有效识别并解决性能问题,从而提升系统稳定性和用户体验。这种组合为性能测试开辟了新道路,助力应对复杂挑战。
523 2
|
缓存 Java 测试技术
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
使用JMeter对项目各个接口进行压力测试,并对前端进行动静分离优化,优化三级分类查询接口的性能
927 10
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
|
测试技术 持续交付 Apache
性能怪兽来袭!Python+JMeter+Locust,让你的应用性能飙升🦖
【10月更文挑战第10天】随着互联网应用规模的不断扩大,性能测试变得至关重要。本文将探讨如何利用Python结合Apache JMeter和Locust,构建高效且可定制的性能测试框架。通过介绍JMeter和Locust的使用方法及Python的集成技巧,帮助应用在高负载下保持稳定运行。
306 2
|
测试技术 持续交付 Apache
性能怪兽来袭!Python+JMeter+Locust,让你的应用性能飙升🦖
【10月更文挑战第2天】随着互联网应用规模的不断膨胀,性能测试变得至关重要。本文将介绍如何利用Python结合Apache JMeter和Locust构建高效且可定制的性能测试框架。Apache JMeter是一款广泛使用的开源负载测试工具,适合测试静态和动态资源;Locust则基于Python,通过编写简单的脚本模拟HTTP请求,更适合复杂的测试场景。
313 3
|
10月前
|
XML jenkins 机器人
JMeter+Ant+Jenkins实现接口自动化测试持续集成
本文介绍了如何使用Ant生成JMeter接口测试报告,并集成到Jenkins中实现自动化测试。内容涵盖Ant与JMeter环境配置、build.xml文件设置、测试执行及报告生成,同时包括Jenkins插件安装、项目配置和钉钉消息通知的集成,帮助实现持续测试与结果可视化。
1213 0
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【10月更文挑战第1天】Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
607 3
|
数据可视化 测试技术 API
JMeter、Apipost 与 Postman 的 API 测试对比:为什么 APIPost 是更聪明的选择
API测试如同筹备一场晚宴,选对工具至关重要。JMeter功能强大但上手难,适合专业用户;Postman简单易用,但在复杂场景和团队协作中表现有限;而Apipost则是一款智能高效的“厨房神器”。它性能测试轻松、结果清晰、学习门槛低,并且能一键集成CI/CD流程。对于追求效率与便捷的团队而言,Apipost无疑是更优选择,让API测试如同五星大厨烹饪般丝滑流畅。