Jmeter 搭建一个web测试环境

  编写不易,不定时更新,求关注!!!
在这里插入图片描述
  本人只是针对个人项目进行一个建议的demo测试,不是针对完整测试。

完整的结构

在这里插入图片描述

新建线程组(添加用户)

  线程组就是模拟用户,没用模拟用户那什么去实现压力测试。
在这里插入图片描述

参数
名称任意取
线程数5
Ramp-Up时间5
循环测试5

备注:
  其实就是一个demo环境,时间压测测时候需要根据实际场景进行分析,得到结果后在填写此处数据。

还是简单的介绍一下怎么分析吧:

  1. 某软件用户数量 10K上下
  2. 软件的使用时间高峰:9:00 – 18:00 约 1000 用户数同时在线
  3. 软件接口100个左右,平均每个用户上线后操作10 个接口退出

上面数据是我随便编写的,具体情况需要找你老大get这些数据然后分析
分析结果:

  1. 最大用户数 10000
  2. (18 - 9)/ 1000 ~= 110 平均每小时 在线数

得出结果:

参数
名称任意取
线程数110 + (110 * 0.2) ~= 135 向上浮动20%向上取整数
Ramp-Up时间300 秒钟 五分钟内达到最大值 平均每2秒增加一个用户
循环测试1 小时 (选择永久,运行到一定条件时手动结束)

  然后就是 配置采样器,集合点,等待时间,断言什么等等的测试组件了,往后我会慢慢全部写出来,下面我也写了一部分最基本的配置。

新建http请求默认值

  就是java的规范,写一次仅写一次。定义了默认值,就不用了每一个请求都写网址,请求什么乱七八糟的东西了。

在这里插入图片描述

参数
协议http
服务器IP网址或者IP地址
端口号80(http协议基本都是 80端口)
路径可以不写
其他默认。

新建http请求采样器

在这里插入图片描述

参数
名称-这个采样器是做什么的,我写的是访问后台。
协议,服务器IP,端口号-使用请求默认值;
方法get
路径/console
编码默认
参数空;

其实就是把访问服务器时在地址栏写的网址,分被写在了请求默认值,和采样器里面。
完整的网址:http://testpress.cnknowledge.com/console

处理服务器token认证

  1. 改写jmeter 的配置文件
    jmeter.properties中CookieManager.save.cookies 删除注释,把值改为true如图:
    在这里插入图片描述
  2. 添加token获取器
    我使用的是边界值提取器,也可以用json提取器总之找到那一串token值就可以了。
    将页面中的token提取出来,并保存到token变量中,等待后面使用。
    在这里插入图片描述
参数
名称边界值提取token
应用范围全部
检查响应字段主体;
引用名称token
左边界界面中储存token的左边界
右边界界面中储存token的右边界
匹配字数1,匹配第一个
缺省值匹配不到使用的默认值,我写null,为后面添加断言使用。
  1. 添加Cookie管理器
    刚刚开启了 自动保存cookie信息,用调试采集器能找到,就是多出来哪些COOLIE_开头的。
    用${COOKIE_XSRF-TOKEN} 作为值,去掉COOKIE_作为名称。有几个写几个。
    在这里插入图片描述
  2. 添加 HTTP信息头管理器
    消息头使用来模拟浏览器访问用的,里面可以写一些浏览器的参数。
    在这里插入图片描述
参数
Token刚刚第二步捕捉到的${token};
User-Agent用户代理;模拟浏览器访问随便选择一个就行:
Mozilla/5.0 (Windows NT 10.0; WOW64)
AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/63.0.3239.26
Safari/537.36 Core/1.63.6788.400
QQBrowser/10.3.2843.400

一切准备就绪,下面开始向服务器发送登录请求;

登录请求

编写登录采样器的时候应该看一下页面,或者接口API,看一下 token认证的方式。
如果认证方式是以消息头的形式发送就不用在表单中填写token信息。
在这里插入图片描述

参数
名称这个采样器是做什么的,我写的是登录后台。
协议、服务器IP、端口号使用请求默认值;
方法post
路径console/login
编码默认
参数_token (查看form表单时中的提交项),username,password不用多说了吧。

备注:登录成功了,后面想要访问那个页面直接访问就好了,下面简单介绍几个。

进入联合出版界面

测试一下进入界面的请求响应时间。
在这里插入图片描述下面是这个页面的请求,无视歌词。
在这里插入图片描述

参数
名称这个采样器是做什么的,我写的是访问后台联合出版。
协议、服务器IP、端口号使用请求默认值;
方法get
路径console/publications
编码默认

搜索数据

进入联合出版界面有一个搜索功能,我们要准备搜索数据。
搜索接口API内容大致内容:
参数:
1:keyword 关键字;可为空,
2:user_id 用户ID;下拉列表。
测试用例:
Case 1 :keyword=空,user_id=1,返回user_id为1的所有数据。
Case 2 :keyword=test,user_id=空,返回书名中包含test的所有数据。
Case 3 :keyword=test,user_id=1,返回user_id为1并且书名中包含test的所有数据。

获取user_id列表数据

在这里插入图片描述
使用XPATH提取器获取下拉框中的VALUE数据。

参数
Apply to所有
Xml parsion Option使用默认。
引用名称定义的变量名称,找到数据后使用此名称引用。
XPATHQuery查询语句://select//option//attribute::value
匹配字数0
缺省值如果找到使用NULL。

准备keyword数据

编写 csv 文件 内容如下:
编写 csv 文件 内容

在这里插入图片描述

参数
文件名CSV文件所在地址。
文件编码CSV文件的编码方式。
变量名称随便写,自己知道就行。一个文件包含多个列使用英文逗号隔开。
忽略首行文件的第一行是否被忽略。
分隔符没列之间使用什么分割。

其他默认选项,需要特殊情况在做修改。

发送搜索请求

上面吧搜索的两个参数都准备就绪了,下面就是发送请求了。
在这里插入图片描述
其他和以前一样,都介绍好几遍了,就介绍一下参数

参数
Keyword接口API中描述的请求key,我将CSV中的值给他:${USER_SITE_keyword}
User_id接口API中描述的请求key,XPATH 搜索到的数据给他:${XPATH_FIND_user_id}

前面两个变量在这里引用,变量名称定义的时候要有点意义,自己看了能知道是什么意思。

进入图书管理界面

这是最普通的一个请求了,没有任何参数,就是证明一下可以随意发请求了,没有别的意义。
在这里插入图片描述
真正的压力测试使用还有很多接口需要编写,我就先写到这里。

执行测试计划。

在命令行中写入这句话。

Cmd>jmeter -n -t .\图书测试.jmx -l  tushu  -e -o  D:\result
Cmd>jmeter -n -t  jmx 文件位置 -l 报告名称 -e -o 已经存在的空文件夹

解释一下:

参数
-h, --help获得命令使用帮助
-n, --nongui以非gui(界面)模式运行JMeter
-t, --testfile 要运行的jmeter测试(.jmx)文件
-l, --logfile 运行结果保存的路径
-r, --runremote启动远程服务器(在remote_hosts中定义)
-e,–reportatendofloadtests测试结果后,生成测试报告
-o,–reportoutputfolder 指定测试报告的存放位置

其实 还有很多,但是基本上用不上 可以使用 jmeter -? 查看所有命令的详细介绍
等待运行成功后会生成一个结果文件:
在这里插入图片描述
在这里插入图片描述
  下一篇 写 “Html 测试报告详细介绍”,求关注!!!
在这里插入图片描述

到此一个测试模型就搞定了。
数据库测试等其他测试参考:https://jmeter.apache.org/usermanual/index.html

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值