首页 > 其他分享 >性能_1 Jmeter脚本编写

性能_1 Jmeter脚本编写

时间:2023-04-30 12:22:46浏览次数:27  
标签:脚本 编码 jmeter http 请求 接口 json 编写 Jmeter

一、万能法

    1. 先把项目启动

    2. 打开项目接口文档,接口文档: 一般是开发

    3. 特别注意事项:当你的接口请求参数为json格式时,一定要写请求头,请求头中一定要有 Content-Type: application/json(响应体的格式)

      如果没有这个信息,100%报错,不局限于jmeter

    4. http请求包括哪些部分

      请求行:请求方法,请求地址URI

      请求头:Content-Type、cookie、User-Agent

      空一行

      请求体:参数: 表单 和消息体数据: json 、xml

    5. json格式:{"key":"value","key1":1} 键值对

    6. 开发人员接口中定义的返回码code,和http response_code不一样

      http response_code:

      2xx: 网络请求超过 200

      3xx: 重定向相关 301

      4xx: 请求URL地址有问题 400 404

      5xx: 服务器内部异常 500、502 bad gatway

      而开发人员在接口中定义的code为响应代码,如0、1、2、3,会有码表来查询

    7. 写脚本

      1. 测试计划上右键, 添加 线程组

      2. 线程组上右键,添加 取样器> http请求 (http协议簇)

      3. 线程组上右键,添加 监听器 > 查看结果树

         一个最简单的jmeter脚本,包括,线程组、取样器、监听器

         线程组: 性能测试中用于场景设计的,写脚本阶段不用改动。

         取样器: 根据不同的协议,编写不同的脚本(填空)。

         监听器: 调试脚本时使用,性能测试执行时禁用。原因是不管哪种监听器,都是对结果数据进行不同维度的展示,这些展示,是需要消耗本地资源的。

         HTTP信息头管理器:添加 Content-Type:application/json

     8. tomcat的默认端口:8080

      http协议的默认端口:80

      https协议默认端口: 443

      内容编码:utf-8

      脚本需要保存之后再运行:jmeter的默认保存路径,jmeter的bin文件夹,可以更改名字

二、请注意:

  1. 当请求体为json, 一定要有请求头 Content-Type:application/json。

  2. json格式有问题,请求会通过,返回值有错误。

  3. 协议: 当协议为http时,可以不写,如果是https,那就必须写。

  4. 服务器名称或IP:不能带有/,会报错。

  5. post方法不可以丢到浏览器访问,get可以。

  6. 路径:不要带域名或ip,和端口,路径开头用/

    不要带有空格,带有空格请求URL会出现%20这类的urlencoded编码。

    URI是资源地址,URL是带有域名的domain。

  7. 内容编码:utf-8

    请求内容出现乱码处理方法:

  8. 内容编码: utf-8

  9. 请求头加上,;charset=utf-8

  10. 请求体为参数类型:勾选参数“编码” 编码:urlencoded编码,在参数值为非字符(汉字、特殊符号) 我都需要勾选编码,给大家的建议:参数值,不管什么类型,都建议勾选编码,密码加密时base64也要勾选。

    响应内容出现乱码处理方法:需求修改jmeter.properties中sampler.result.encoding

    不是简单的设置为utf8、 gbk、gb2312、big5,同一个接口,用postmen请求,响应是正常,用jmeter请求响应中文乱码?原因是: jmeter的编码是根据操作系统编码。在国内,中文windows系统的字符集编码是gbk 936, mac系统中文编码utf-8。

  11. 所有非必填的都要传进参数,以确保资源消耗最大,更能反应性能(最大值)。

  12. 参数、消息体数量的选择

    当我们的请求接口文档中说,请求体为json格式,那么我们就选择用消息体数据,来写json, soap=http+xml

    参数: 我们的请求体为form-data,Content-Type: application/x-www-form-urlencoded 或者不指明请求体类型,get

  13. 自动重定向:不会显示中间重定向过程,无法从过程中,提取信息

    跟随重定向:会自动显示重定向过程,能从过程中,提取想要信息,用于后面接口请求

    使用keepAlive:保持连接, 长连接,因为现在用http协议版本为1.1就是长连接,所以默认勾选keepAlive,但是在性能测试中,我们会根据需要,去掉这个勾。

    愿意:因为性能访问量太大还一直保持连接,会影响数据。

标签:脚本,编码,jmeter,http,请求,接口,json,编写,Jmeter
From: https://www.cnblogs.com/Alisa-sweet/p/17365118.html

相关文章

  • python脚本 --- 去除txt的指定行数
    #-*-coding:UTF8-*-foriinrange(17,800):filename=i+1;withopen('.\\'+str(filename),"r")asf:#读取文本data=f.readlines()f.close()#那么现在data=[0,1,2,3,4,5,6,7,8,9,10]dirtyid=[0,1,2,3,4,5......
  • gdb---简单脚本示例
    gdb---简单脚本示例gdb脚本可批量执行命令,自动化控制调试过程新建文件a.gdb,内容如下:#Thisisacomment.filea.outstartbreak*0x55555555502Ebreak*0x555555555A5Abreak*0x555555555660break*0x555555555714continuedelete*使用方法:gdb-xa.gdb2019/1......
  • python+playwright 学习-58 Jenkins上使用 Pipeline 运行 playwright 自动化脚本
    前言Dockerfile.focal可用于在Docker环境中运行Playwright脚本。这些镜像包括在Docker容器中运行浏览器所需的所有依赖项,还包括浏览器本身。playwright在linux系统上目前只支持Ubuntu系统的部分版本,centos和debian系统上是没法运行的。jenkins环境准备需安装2个跟docke......
  • python+playwright 学习-55 在docker 容器中运行playwright脚本
    前言Dockerfile.focal可用于在Docker环境中运行Playwright脚本。这些镜像包括在Docker容器中运行浏览器所需的所有依赖项,还包括浏览器本身。playwright在linux系统上目前只支持Ubuntu系统的部分版本,centos和debian系统上是没法运行的。镜像查看所有可用的图像标签https:......
  • (Edge,Chrome)编写扩展应用,替代IE ActiveX插件
    资料来源#这次以Edge作为例子,Chrome其实也差不多Edge扩展应用资料:https://docs.microsoft.com/zh-cn/microsoft-edge/extensions-chromium用到的浏览器Api资料:https://developer.mozilla.org/zh-CN/docs/Mozilla/Add-ons/WebExtensions/API/runtime/sendMessagehttps://developer......
  • RHEL8Vim与Shell命令脚本-Linux就该这么学4
       本章介绍如何使用Vim编辑器来编写和修改文档,然后通过逐步配置主机名称、系统网卡以及软件仓库等文件,加深Vim编辑器中诸多命令、快捷键与模式的理解;能够在Shell脚本中以多种方式接收用户输入的信息,能够对输入值进行文件、数字、字符串的判断比较。在熟练使用“与、或......
  • 【性能】JDK和Jmeter的安装与配置
    一、JDK环境配置1.下载JDK官网下载地址:http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html    选择对应系统的安装包,下载后安装,安装中记录JDK安装的地址,之后一直点击下一步到完成就可以。2.配置JDK环境 ......
  • unity 把本地图片批量添加到 物体的脚本上 Texture 类型
    privatevoidAwake(){stringfilePath=System.Environment.CurrentDirectory+"/专利/";if(Directory.Exists(filePath)){//判断这个路径是否存在DirectoryInfodirection=newDirectoryInfo(filePath);floders=directi......
  • [Unity脚本运行时更新]C#7.1新特性
    洪流学堂微信公众号。本文是该系列《Unity脚本运行时更新带来了什么?》的第6篇。洪流学堂公众号回复runtime,获取本系列所有文章。Unity2017-2018.2中的4.x运行时已经支持到C#6,之前的文章已经介绍完毕。Unity2018.3将支持到C#7.3,今天我们先来看看C#7.1新特性能给代码带来什么吧,不过......
  • [Unity脚本运行时更新]C#7.2新特性
    洪流学堂微信公众号。本文是该系列《Unity脚本运行时更新带来了什么?》的第7篇。洪流学堂公众号回复runtime,获取本系列所有文章。Unity2017-2018.2中的4.x运行时已经支持到C#6,之前的文章已经介绍完毕。Unity2018.3将支持到C#7.3,今天我们来看看C#7.2新特性能给代码带来什么吧,不过这......