我们前面文章介绍了JMeter的图形化界面的简单认识,这篇介绍,如果创建第一条JMeter测试。
1. 打开JMeter
不会的,请看前面文章。
2. 新建一个Test Plan
左侧点击Test Plan,在右侧Test Plan下的name输入框,修改成MyFirstTestPlan,然后刷新左侧列表,就发现左侧的Test Plan的名称改成了新的。
点击工具栏第二项,就是Template图标,弹出如下图
我们可以看到很多Template供我们选择,点击一个模板,页面就显示该模板的介绍。上面可以看到,JMeter是支持录制脚本的,这里录制脚本,我们先放一放。我们打开JMeter,可以点击工具栏的第一个图标(New)出来新的Test Plan,今天我们就用Test Plan格式来做第一条JMeter测试。
3. 新建一个Thread Group
点击MyFirstTestPlan,右键,选择Add->Threads(Users)->Thread Groups.
在JMeter中,通常是以多线程或多进程的方式模拟用户行为来产生负载,所以,Thread Group可以理解为负载发生器。脚本中模拟用户的行为,叫用户运行器,通常用户运行器附加在线程或进程上。资源生成器,指用于生成测试过程中服务器,负载机的资源数据。报表生成器,根据测试的数据生成报表。这些概念,先了解下,以后慢慢会理解的。setUp和tearDown是不是很熟悉,如果你看了Python+Selenium系列文章中介绍unittest单元测试框架就应该明白这个意思。其实setUp就是写一些前提条件,tearDown用来写一些测试结束后的代码或者行为设置。
这里,把默认的Thread Group,修改名称为 Users,用户附加在线程组上嘛。
4. 线程组界面简单介绍
1)Action to be taken after a sampler error
这里只有一个线程组,如果有多个这个就可以考虑不同情况了,如果线程组1执行失败,可以选择停下来,不执行线程组2,也可以选择继续,看这些字面意思,也能明白什么作用,这里我们默认,不修改。
2) Thread Priperties
线程属性,分别可以设置用户数,多长时间启动所有线程和循环次数。
Ramp-up Period(in seconds)
决定多长时间启动所有线程。如果使用10个线程,ramp-up period是100秒,那么JMeter用100秒使所有10个线程启动并运行。每个线程会在上一个线程启动后10秒(100/10)启动。Ramp-up需要要充足长以避免在启动测试时有一个太大的工作负载,并且要充足小以至于最后一个线程在第一个完成前启动。 一般设置ramp-up=线程数启动,并上下调整到所需的。
用于告知JMeter 要在多长时间内建立全部的线程。默认值是1。如果未指定ramp-up period ,也就是说ramp-up period 为零, JMeter 将立即建立所有线程。假设ramp-up period 设置成T 秒, 全部线程数设置成N个, JMeter 将每隔T/N秒建立一个线程。
Ramp-Up Period(in-seconds)代表隔多长时间执行,0代表同时并发
Delay Thread creation until needed
延迟创建线程,直到该线程开始采样,即之后的任何线程组延迟和加速时间为线程本身。这样可以支持更多的线程,但不会有太多是同时处于活动状态。
scheduler
选中调度器后,需要输入启动和结束时间。
这个界面的设置,我们都采用默认配置。
5. 新建一个HTTP请求
点击Users,右键选择add->Sampler->HTTP Request
和前面步骤一样,我们该名称为BaiduHomePage,其他设置如下红圈位置:
6. 新建两个监听
右键Users,add->Lisener->View Results In Table 和View Results Tree
分别添加了View Results in Table 和View Results Tree,效果如下
6. 运行测试
运行有两种方法
我们这里在工具栏点击绿色的三角符号,工具栏右侧时间停止了说明执行结束了。当然,运行时候可以点击stop 和shutdown图标,自己试试。
在运行之前会提示保存:
7. 观察测试结果
1)Table View
2)Tree View
观察详细的返回数据,因为这个是一个HTTP请求,这里正常返回的就是HTTP响应,你点击Request和Respone Data,两个tab切换,检查下数据。
本文通过手工创建一个接口测试用例的场景,来介绍JMeter的基本使用。JMeter第一个测试创建过程就介绍到这里,希望对你有一些帮助。