zoukankan      html  css  js  c++  java
  • 【学习总结】jmeter入门概述

    测试工具jmeter-从入门到精通-汇总

    目录

    =========================================

    概述

    简介

    • apache公司用java平台开发的一款测试工具

    可以做什么

    • 接口测试-多
    • 性能测试
    • 压力测试-多
    • 数据库测试
    • java程序测试

    优点

    • 开源免费
    • 支持多协议-HTTP,tcp,udp
    • 轻量级
    • 功能强大

    缺点

    • 无法验证JS程序和页面UI,必须配合selenium使用

    返回目录

    =========================================

    安装与启动

    准备

    • java环境

    下载

    安装版本选择

    路径

    • 解压zip文件后,放在一个没有中文字符的路径下

    启动

    • jmeter路径的bin目录下,双击jmeter.bat启动jmeter
      • 注:Linux下,用jmeter.sh启动
    • Jmeter 是支持中文的, 启动Jmeter 后, 点击 Options -> Choose Language 来选择语言

    插件安装

    • jmeter本身支持的包不多,一些功能需要下载插件;
    • 下载路径:https://jmeter-plugins.org/install/Install/
    • 放置路径:jmeter的 lib/ext 路径下
    • 重启后,在jmeter的选项最下方可以看到插件

    jmeter目录介绍

    • 启动cmd窗口

    • bin



    • 其他目录

      • lib:存放jar包,是jmeter的核心文件;
      • printable_docs:存入jmeter用户手册,帮助文档

    返回目录

    =========================================

    脚本入门

    主页面布局

    向百度发送请求

    向百度发送请求操作

    • 步骤1:添加测试计划

      • 注:开启后,默认有一个已经创建好的测试计划
    • 步骤2:添加线程组

    • 步骤3:添加HTTP请求

    • 步骤4:配置HTTP请求

    • 步骤5:添加查看结果树组件(生成的结果树界面不作任何配置)

    • 步骤6:执行测试计划


    返回目录

    =========================================

    测试计划元件

    名称修改

    • 测试计划:可将名称设置为“项目名称”
    • 线程组:可将名称设置为“业务流程”
    • HTTP请求:可将名称可以设置为“接口名称”

    测试计划test plan

    • 可进行相应的修改:将名称设置为项目名称

    线程用户thread user

    线程组:

    • 线程数:即请求的虚拟用户数,不等于并行用户数。

    • ramp-time:完成所有线程执行的时间设置。

    • 循环次数:对所有线程进行循环。



    取样器sampler

    作用:

    • 性能测试中,向服务器发送请求,记录响应信息,记录响应时间的最小单元。

    • 常见:HTTP请求,ftp请求,tcp请求等。

    逻辑控制器login controler

    两类

    • 一类:控制测试计划中取样器节点发送请求的逻辑顺序,如if,switch,循环等。

    • 一类:组织和控制测试计划中取样器节点,如事务控制器,吞吐量控制器。

    配置元件config element

    • 用于提供对静态数据配置的支持,即参数化。

    定时器timer

    • 用于设置操作之间的等待时间

    前置处理器per processor

    • 用于在实际请求发出之前,对即将发送的请求进行特殊处理。

    后置处理器post processor

    • 用于在取样器发出请求的服务器响应进行处理。

    断言assertion

    • 用于检测测试中得到的响应数据是否符合预期。

    监听器listener

    • 对测试结果进行处理和可视化展示,如图形结果,查看结果树,聚合报告等。

    返回目录

    =========================================

    jmeter运行原理

    在jmeter中,以线程的方式运行

    • 因为如果是进程方式,并发时,开销太大

    jmeter通过线程组来驱动多个线程运行测试脚本

    运行方式:GUI模式(界面窗口模式);命令行模式(cmd)

    • 命令行模式:对负载机的资源消耗更小。
    • GUI模式:对电脑的资源消耗较大,无法实现大的并发和压力测试;主要用于创建和调试。

    注:执行jmeter的电脑叫做负载机

    返回目录

    =========================================

    jmeter脚本要素

    接口三要素

    • 请求地址,请求参数,返回值

    jmeter脚本要素

    • 测试计划:脚本中测试计划只能有一个

    • 在测试计划中,至少有一个线程组

    • 在线程组中,至少有一个取样器

      • 取样器:发送请求,记录响应时间和相应内容
    • 在测试计划中,必须有监听器

    返回目录

    =========================================

    jmeter录制脚本

    使用工具badboy录制

    • 注:badboy只能录制web端,不能录制客户端;

    • badboy安装:

      • 傻瓜式,可以自定义安装路径。
    • 打开:

      • 安装时在开始菜单栏中添加,因此可以通过开始菜单打开。
    • 录制:

      • 打开后,即是recording状态,输入网址后点击即可开始录制;
      • 在右侧进行操作;
    • 停止记录并保存为jmeter:

      • 停止记录的红色按钮可以停止记录;
      • 保存为jmeter,之后可以从jmeter导入录制好的脚本。
    • jmeter导入:

      • 打开 -- 找到.jmt文件,并选择;
      • 要查看结果,需要手动添加监听器,如查看结果树,然后进行运行等其他操作。

    使用jmeter自身代理录制移动端

    • 配置jmeter

      • 创建新的测试计划,并添加一个线程组;
      • 在测试计划右键添加HTTP代理服务器:添加-非测试元件-HTTP代理服务器
      • 配置HTTP代理服务器:端口8888默认(如果被占用,再修改),HTTP domains:localhost或本地IP,目标控制器选择"测试计划-线程组"
      • 启动:按代理服务器内部的启动,不是菜单栏的启动,启动后OK,开始录制。



    • 配置移动端(手机端)

      • 获取本地域名和端口号:pc端->cmd->ipconfig查询ipv4网络信息;
      • 手机端:长按WiFi-(修改网络-高级选项-)代理-手动-输入主机名和端口号-修改网络(同fiddler配置)
      • 手机端操作:如登录操作,jmeter里有相应的记录;点击停止来停止录制。
      • 线程组添加监听器-查看结果树:可以查看执行结果;
      • 保存jmeter文件:线程组右键-选中部分保存为。




    返回目录

    =========================================

    jmeter配置文件修改

    路径

    • jmeter/bin目录下:打开 jmeter.properties 配置文件,修改后的语句去掉注释井号

    • 配置后保存退出,重启jmeter

    中文乱码

    • 查找csvdataset.file.encoding_list

    • 修改为csvdataset.file.encoding_list=UTF-8|UTF-16|ISO-8859-15|US-ASCII

    • 去掉本条语句前的井号,并重启jmeter

    • 注:若上述修改没有用,则需要对源码进行修改,即对jar包进行反编译。

    默认语言

    • 查找language

    • 修改为language=zh_CN (表示中文简体)

    • 去掉本条语句前的井号,并重启jmeter

    返回目录

    =========================================

    END

  • 相关阅读:
    关于如何实现接口IComparer以实现自己需要的排序规则
    随机移动
    关于资源版本管理的问题
    Unity3D内部脚本编程入门
    删除GameObject上除了Quality子物体之外其他子物体的组件(但不删除transform)
    资料
    c# 基础知识点
    c# 匿名方法(委托)
    git
    一篇关于Unity3D优化的文章,翻译脚本优化部分
  • 原文地址:https://www.cnblogs.com/anliux/p/12820186.html
Copyright © 2011-2022 走看看