美文网首页java 设计
Jmeter压测笔记

Jmeter压测笔记

作者: SetZero | 来源:发表于2019-04-10 16:32 被阅读260次

    中文界面设置

    • 修改bin/jmeter.properties文件,将language设置为zh_CN
      #Preferred GUI language. Comment out to use the JVM default locale's language.
      language=zh_CN
      

    利用jmeter代理服务器进行脚本录制

    1. 测试计划中添加线程组
    • 线程数:就是模仿用户并发的数量,Ramp-up:运行线程的总时间,单位是秒,循环次数:就是每个线程循环多少次。
    • 我现在的线程数是200,就是相当于有200个用户,运行线程的总时间是10秒。也就是说在这10秒中之内200个用户同时访问,一秒钟有20个用户同时访问,每个用户循环一次,也就是访问一次。


    1. 测试计划中添加非测试元件http代理服务器
    2. 端口(代理服务器监听端口):可另外设置端口,默认8888
    • 目标控制器:测试计划 > 线程组
    • 分组:每个组放入一个新的控制器
    • 勾选:记录HTTP信息头
    1. http代理服务器:
    • 添加过滤条件:(?i).*\.(bmp|css|js|gif|ico|jpe?g|png|swf|woff|woff2|svg|ttf)
    1. 打开浏览器,网络设置,将局域网设置中的代理服务器设为localhost,端口设置为8888
    2. 代理服务器配置后之后,点击HTTP代理服务器启动按钮,代理服务器就会开始记录所接受的http请求
    3. 在浏览器地址栏输入需要测试的地址并进行相关操作,完成第一组录制
    4. 得到第一组录制的结果后,将任意一个请求的HTTP信息头管理器移至测试计划线程组使其成为全局HTTP信息头管理器
    5. HTTP代理服务器中取消勾选:记录HTTP信息头,重启HTTP代理服务器
    6. 删除录制的第一组信息,重新进行录制
    7. 脚本录制完毕,处理一下HTTP信息头管理器,添加或修改需要的信息头后即可开始进行压测

    远程测试

    • 部署从节点

      apiVersion: v1
      kind: Service
      metadata:
        name: jmeter
      spec:
        clusterIP: None
        ports:
        - port: 1099
          name: server
        selector:
          app: jmeter
      ---
      apiVersion: apps/v1beta1
      kind: StatefulSet
      metadata:
        name: jmeter
        labels:
          app: jmeter
      spec:
        serviceName: jmeter
        replicas: 5
        selector:
          matchLabels:
            app: jmeter
        template:
          metadata:
            labels:
              app: jmeter
          spec:
            affinity:
              podAntiAffinity:
                requiredDuringSchedulingIgnoredDuringExecution:
                - labelSelector:
                    matchExpressions:
                    - key: app
                      operator: In
                      values:
                      - jmeter
                  topologyKey: "kubernetes.io/hostname"
            containers:
            - name: jmeter
              image: justb4/jmeter:5.1.1
              ports:
              - name: server
                containerPort: 1099
              - name: rmi
                containerPort: 20000
              env:
              - name: RMI_HOST
                valueFrom:
                  fieldRef:
                    fieldPath: status.podIP
              command:
              - jmeter-server
              args:
              - -Dserver.rmi.ssl.disable=true
              - -Djava.rmi.server.hostname=$(RMI_HOST)
      
    • 运行控制端

      kubectl run jmeter-master --image=justb4/jmeter:5.1.1 -it --restart=Never --command -- bash
      
    • 另开窗口,将保存的脚本复制到jmeter-master pod中

      kubectl cp self.jmx jmeter-master:/
      
    • 在控制端,执行压测

      jmeter -Dserver.rmi.ssl.disable=true \
          -n \
          -t /self.jmx \
          -l /result.jtl \
          -R jmeter-0.jmeter.jmeter.svc,jmeter-1.jmeter.jmeter.svc,jmeter-2.jmeter.jmeter.svc,jmeter-3.jmeter.jmeter.svc,jmeter-4.jmeter.jmeter.svc
      
    • 另开窗口,保存压测结果

      kubectl cp jmeter-master:/result.jtl .
      
    • 将压测报告导成html

      jmeter -g result.jtl -o result
      

    相关文章

      网友评论

        本文标题:Jmeter压测笔记

        本文链接:https://www.haomeiwen.com/subject/gjwyiqtx.html