高级性能测试系列《8.脚本写法》

一、jmeter工具介绍

gui界面

  • 一切都在右键掌握之中。

  • 测试计划:工作中测试计划:什么时间什么人做什么事情。

    • 线程组:接口、自动化测试时,基本不会去改动。

    • 配置元件

    • 监听器

    • 取样器:根据不同的协议,使用不同的取样器编写脚本

    • 逻辑控制器。

    • 前置处理器:

    • 后置处理器:对取样器进行控制。

    • 定时器。

    • 性能测试,这个是用于进行性能场景设计的。

    • 线程组:进行性能场景设计。

    • setup线程组。

    • teardown线程组。

    • 优先级是最高的,正式干活时,急先锋。

    • 最先被执行的配置元件是:用户定义变量

    • 对性能结果进行监控,展示结果数据。

    • 不同的元件,是从不同的角度,展示结果数据。

    • 重点关注:用户参数

    • jmeter里面的测试计划是脚本的根文件。

    • 元件

二、jmeter写脚本

  • 特别注意事项:

    • Accept:在请求头里面可加可不加,因为这个东西是开发所控制的,我们是无法修改的。

    • 请求行

    • 请求头

    • 空一行

    • 请求体

    • 请求方法,请求地址URI。

    • Content-Type

    • cookie

    • User-Agent

    • 参数类型:表单。

    • 消息体数据类型:jsonxml

    • 当你的接口请求参数为json格式时,一定要写请求头,请求头中一定要有 Content-Type:application/json(如果没有这个信息,100%报错,不局限于jmeter)。

    • 衍生:http请求包括哪些部分?

  • json格式:

    • {"key":"value","key1":1}

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

    • 3xx:重定向相关。301

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

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

    • http中的response_code

    • 开发人员在接口中定义的code,是响应代码。

每家公司定义的code的含都不一样的,是为了方便定位某些问题的(一个code值代表某一种意思而已)。

  • 写脚本

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

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

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

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

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

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

监听器:调试脚本时使用,性能测试执行时禁用监听器。

不管哪种监听器,都是对结果数据进行不同维度的展示。

这些展示是需要消耗本地资源的,从而导致资源不能足够得分配到性能测试中去。

8080端口,是tomcat的默认端口。

http协议的默认端口:80

https协议默认端口: 443

jmeter的默认保存路径,jmeter的bin文件夹。

性能测试中,这种非必传的参数,我们也写上:

70757cb8e03a92801aeed4a11122c056.png

把这些非必传的参数都传了,代码对这些参数都进行了计算。

这样做性能测试,测试出的结果基本就是跟实际情况最接近的。

请注意:

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

2、json格式有问题。

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

4、服务器名称或IP:不能带有/

注意:浏览器的url地址里面只能执行get方法,不能执行post方法。

5、路径:不要带域名、ip和端口。

路径开头:用/

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

URI:资源地址。

URL:带domain。带有域名去访问资源的地址。

6、内容编码:utf8。

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

1)内容编码:utf8。

2)请求头的Content-Type的值中加上:charset=utf-8

7d0b9d4860825660937bbe338a66379c.png

3)请求体为参数类型:勾选参数“编码”,编码:urlencoded编码。

在参数值为非字符(汉字、特殊符号) ,都需要勾选编码。

给大家的建议:不管什么类型的参数值,都建议勾选编码。

响应内容出现乱码处理方法:

不是简单的设置为utf8gbkgb2312big5,需求修改jmeter.properties中的sampler.result.encoding

同一个接口,用postman请求,响应是正常的。用jmeter请求,响应就有中文乱码?

原因是:jmeter的编码是根据操作系统编码来的。

在国内,中文windows系统的字符集编码是gbk936maclinux系统中文编码utf8

在写这个系统的代码的时候,给它设置的字符集为utf-8,而我的系统是gbk,出现编码不一致的问题,就出现乱码。

唯独在中文的windows系统中出现响应乱码的问题。

7、参数、消息体数据类型选择

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

soap=http+xmlxml也是写在消息体里面。

参数: 请求体是form-data Content-Type: application/x-www-form-urlencoded 、不指明请求体类型、请求的方法是get,就用参数。

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

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

使用keepAlive:保持连接, 长连接。

因为现在用http协议版本为1.1,长连接的开关默认是打开的。

所以,默认勾选keepAlive,但是在性能测试中,我们会根据需要,去掉这个勾。

做性能测试时,请求量是非常大的。大量的人一直在请求,一直保持着连接不放。

发过去一个请求,本地要消耗一个端口的,一个端口对应一个连接池。

需要及时的释放,不然这大量的人,不能灵活得用。


文章中除标明 “图片来自网络”的图片,皆为小编本人所画所截图,计算机知识都一样,如有雷同,纯属巧合。

欢迎关注 “清菡软件测试”,进群加v:qhtester,感谢点赞与分享!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清菡软件测试

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值