高频面试题解析:jmeter 面试题剖析实战

article/2025/6/19 9:43:24

最近有个分析反馈,自己在面试的时候,遇到一个 jmeter 题目,要我帮忙看下,题目如下:

  进入http://www.weather.com.cn/网站,用jmeter编写脚本实现如下操作(下列要求在同一个测试脚本) :
(1)编写获取北京天气紫外线、穿衣、洗车、感冒指数的压测脚本,要求将城市参数化10个(城市名字自定义),将城
市的当前实时天气>10度作为断言,并将天气数字输出打印到日志,
设置200用户并发持续运行3天(2)编写获取周边景点的脚本,并景点返回的个数作为断言,并将各景点名字输出打印到日志,
设置200用户并发持续运行10分钟

第一个题目

粗看,其实没有什么难度,但是当你去访问了这个网站,然后看到网站数据结构时,才知道并不是那么简单。

当你去访问这个网站的时候,你会发现,这个网站并没有直接提供接口。

没有提供接口,哪怎么做呢?

抓包!是个不错的选择,所以,这个题目,首先考察的是:

你是否懂得用抓包工具住包 ?

通过抓包,你会看到有一个类似这样:
http://d1.weather.com.cn/weather_index/101010100.html?=1595579781357 的地址,返回了我们第一问中的北京天气信息。看到这样一个地址,你会找出哪些信息?101010100 这个应该要想到,这个应该是城市代码,而"="这个之后的值,应该是一个时间戳。这就在考察:你对于数据的敏感度;接下来,我们看下这个接口返回的消息体,数据类似“var cityDZ ={"weatherinfo":{xxxx};xxxxxxxxx}” 乍一看,还以为是 JSON 格式,但又不像,仔细看响应头的 Content-Type,你又会发现是‘text/html' 文本类型。也就是说,题目中要求获取的天气、紫外线...... 等等信息,不能简单一次提取,需要用到正则,所以这个又在考察:你对正则提取器的使用;题目要求获取多个信息,一直用所有的都用正则可以吗?可以,但是你如果所有的信息都通过正则提取器提取,那也从侧面反映你技术不咋滴。因为那是干劳动力的活,其实是在隐式考察:你对正则提取器和 JSON 提取器以及多提取器一起灵活使用的能力。把一个文本内容,通过正则提取器提取出一段 JSON,然后再用 JSON 提取器提取正则式结果中想要数据,这才是他的真正的目的。然后题目又来一个难题,实时天气大于 10 度作为断言。是不是一下又楞了,不知道怎么搞了?提取实时天气,这个可以提取出来,难点就在“大于 10 度”这个要怎么做呢?这又在考察:你对于断言中大小断言掌握情况, 首先我们要知道应该用什么断言?响应断言,没有比较大小功能。比较断言,是两个特定的比较,也不适用。那就只有“大小断言”这一个。题目中还有,要参数化 10 个城市,别小看这个参数化,为什么不是八个,不是九个,却刚好十个?这其实也隐藏了一个点,这个又在考察:你对于循环控制和 foreach 控制器的使用,当然这个点,可以取巧,用用户自定义 10 个城市,然后再用 foreach 控制器能简单解决。题目中,还要求“将天气数字输出打印到日志”,因为 jmeter 本身没有直接写参数到日志的元件,需要用函数或 Java 代码来实现,所以这个又在考察:你对 jmeter 函数或 Java 脚本的使用能力;至于后面的“设置 200 个用户持续运行 3 天”这个就非常简单了,考察:线程组进行性能场景的设置,这个可以用普通的线程组就能实现,当然,也可以使用其他的线程组。

看似一个简单的 jmeter 题目,只要有一定的 jmeter 使用经验,这个题目思路不复杂,但是难点在具体脚本的写法。下面把脚本截图,仅供参考。

  • foreach 控制器

高频面试题解析:jmeter 面试题剖析实战

  • 获取气温

高频面试题解析:jmeter 面试题剖析实战

  • 查看接口响应数据

高频面试题解析:jmeter 面试题剖析实战

  • 提取所有指数

高频面试题解析:jmeter 面试题剖析实战

  • 提取题目所需要的指数

高频面试题解析:jmeter 面试题剖析实战

  • 获取城市天气

高频面试题解析:jmeter 面试题剖析实战

  • 获取城市温度

高频面试题解析:jmeter 面试题剖析实战

  • 获取温度数值

高频面试题解析:jmeter 面试题剖析实战

  • 断言温度数值

高频面试题解析:jmeter 面试题剖析实战

  • 日志显示温度

高频面试题解析:jmeter 面试题剖析实战

  • 用户自定义变量

高频面试题解析:jmeter 面试题剖析实战

 第二个题目

看题干,就知道比第一个要简单,第一个题目做出来了,第二个马上就能用上上面的技能。但是,却埋下了一个难题,那就是获取景点个数,作为断言。为什么说还难点呢?仔细看过接口响应文本,就会发现,又不是简单的 JSON。数据是:var data=({key1:{xxx}},{key2:{xxx}},{key3:{xxx}})。如果不懂得 JSON 的相对提取法,这个题目就变得异常复杂

下面是解题截图,仅供参考:

  • 获取周边景点

高频面试题解析:jmeter 面试题剖析实战

  • 查看接口响应数据

高频面试题解析:jmeter 面试题剖析实战

  • 正则提取响应数据

高频面试题解析:jmeter 面试题剖析实战

  • 获取景点名称

高频面试题解析:jmeter 面试题剖析实战

  • 景点数量断言

高频面试题解析:jmeter 面试题剖析实战

  • foreach 循环

高频面试题解析:jmeter 面试题剖析实战

  • 日志显示景点名称

高频面试题解析:jmeter 面试题剖析实战

好了,一个看似简单的 jmeter 面试题,却隐藏了这么多考察项,你是否都掌握了呢?


http://chatgpt.dhexx.cn/article/v6Ad2QgX.shtml

相关文章

软件测试面试丨关于JMeter的问题,看这篇就够了

目录 前言1、解释下什么是JMeter?2、说明JMeter的工作原理?3、说明可以在哪里使用函数和变量?4、提到JMeter中的正则表达式是什么?5、解释什么是采样器(Samplers)和线程组(Thread group&#xf…

这34道接口测试 Jmeter面试题,你会吗?

接口测试 & Jmeter面试题 一、接口测试 1、接口测试流程 1、首先是从开发那里拿到API接口文档,了解接口业务、包括接口地址、请求方式,入参、出参,token鉴权,返回格式等信息。 2、然后使用Postman或Jmeter工具执行接口测试…

最新JMeter面试题,紧扣面试实际要求,看完拿下20K

JMeter是一款纯java编写负载功能测试和性能测试开源工具软件。相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具,是测试人员必须要掌握的工具之一。 下面小编给大家总结了22年最新30道关于JMeter的面试题,…

Jmeter 面试题

Jmeter的工作原理 1、Jmeter可作为Web服务器与浏览器直接的代理网关 2、可捕获浏览器的请求和Web服务器的响应,可以很容易的生成性能测试脚本 3、Jmeter可根据性能测试脚本并通过线程来模拟真实用户对Web服务器的访问压力 4、与LoadRunner的工作原理基本一致 J…

软测面试丨关于JMeter的面试问题,看这篇就够了!

JMeter是一款纯java编写负载功能测试和性能测试开源工具软件。相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具,是每个测试人员都必须要掌握的工具之一。下面松勤程老师列举分享一些关于JMeter问的最多的面试题。 1、…

2022 年面试工具篇 Jmeter 接口面试题及答案

问题列表 在项目中如何用jmeter进行http接口测试?Jmeter 常用元件有哪些?jmeter 如何管理cookie和session信息?jmeter中如何实现关联?jmeter中断言方式?jmeter参数化的方式有哪几种可以实现?Jmeter怎么录制…

2022年面试工具篇Jmeter接口面试题及答案

问题列表 •在项目中如何用jmeter进行http接口测试?•Jmeter 常用元件有哪些?•jmeter 如何管理cookie和session信息?•jmeter中如何实现关联?•jmeter中断言方式?•jmeter参数化的方式有哪几种可以实现?•…

高频Jmeter软件测试面试题

近期,有很多粉丝在催更关于Jmeter的面试题,索性抽空整理了一波,以下是一些高频Jmeter面试题,拿走不谢~ 一、JMeter的工作原理 JMeter就像一群将请求发送到目标服务器的用户一样,它收集来自目标服务器的响应以及其他统…

常见JMeter面试题

1、什么是JMeter? JMeter是一种开源的性能测试工具,可以用于测试静态和动态资源,如Web应用程序、数据库、FTP服务器等。 2、JMeter可以测试哪些类型的应用? JMeter可以测试各种类型的应用程序,包括Web应用程序、数…

c#实现的破解程序--针对软件使用时间限制

自己捣腾了一天,弄了一个修改软件过期的小程序,主要是自己有几款有时间限制的软件,每次改时间很麻烦。有了这个程序就可以一劳永逸了。 前提:只适用于修改操作系统时间后,程序就能够正常使用的那种软件。如Lingoes&…

时间设置(图书馆)

我们根据代码一边调试一边探讨: 获取当前时间赋值到变量上 整体代码: var myDate new Date();//获取当前日期 var day (“0” myDate.getDate()).slice(-2);//日:若小于9,前面补上0 var Month (“0” (myDate.getMonth() 1)…

idea使用datebase

1.idea界面左上方,View中选择Database 2.点击Database中的“”号 3.选择Mysql数据库 4.测试连接,若不成功,则去配置驱动 5.选择对应的版本号或者本地添加数据库jar包 6.配置过驱动之后以及测试通过之后,点击OK按钮即可使用

SpringBoot2.0高级案例(10):整合 JWT 框架,解决Token跨域验证问题

GitHub源码地址:知了一笑 https://github.com/cicadasmile/middle-ware-parent一、传统Session认证 1、认证过程 1、用户向服务器发送用户名和密码。 2、服务器验证后在当前对话(session)保存相关数据。 3、服务器向返回sessionId&#xff0c…

SpringBoot集成JWT实现token验证以及代码演示

一、JWT的主要应用场景 身份认证在这种场景下,一旦用户完成了登陆,在接下来的每个请求中包含JWT,可以用来验证用户身份以及对路由,服务和资源的访问权限进行验证。由于它的开销非常小,可以轻松的在不同域名的系统中传…

2018.8.2课堂笔记

一.用户配置文件与密码配置文件 1.1 /etc/passwd是由 “ :” 分割7个字段,每个字段的含义如下: [rootlocalhost ~]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/no…

python爬虫反虫之setcookie

作者原文传送littleywww.littley.top 反爬表现 在使用python或rust进行爬虫的时候的有时会遇到请求返回一段含有只含有js代码的html页面如图: 分析及优化文件 首先解决转义字符\x63\x73\x4b,转义字符可以通过console.log()打印出来,最方…

java 数据抓取 动态获得cookies里变动的属性_Java爬取CSDN博客遇到setCookie问题

最近有一个需求就是爬取CSDN上的数据,但是目前遇到了一个问题就是关于获取CSDN的cookie的问题。到目前为止并没有什么好的办法。希望大家可以给我留言,我们一起探讨。。 在我没有设置cookie的时候,会报以下错误。 function setCookie(name,va…

js的cookie操作

cookie.js: //这个cookie的js代码借用的老外的,我加了中文注释--原文:http: //www.echoecho.com/jscookies02.htm ///设置cookie function setCookie(NameOfCookie, value, expiredays) { //参数:三个变量用来设置新的cookie: //cookie的名称,存储的Cookie值, …