文章目录
前言
参考资料:
使用 JMeter 进行压力测试
☆JMeter入门教程-XMeter性能测试云服务
JMeter教程
性能测试工具 JMeter 入门基础
照着网上的流程copy不是什么问题,
-
但是我其实不理解为什么要这么做流程。既然不清楚原因,那我也不清楚我的测试是否切实的完成了我的目标。
-
另外一个问题在于,它似乎要看发送报文之类的东西。问题是我不会JSON。
-
压力测试是一组行为,而并非是仅仅只有访问吧!
我学会了最简单的get操作,能做到不断的访问助力活动的主页。但是如果在“大量分享助力链接”方面出问题呢?如果在“大量点击为好友助力方面出问题呢?”
一 什么是性能测试
进行性能测试以测量系统的不同性能属性,如响应时间(速度),可靠性,资源使用,可扩展性,各种负载条件下的稳定性等。
1.1 压力测试:
压力测试也是一种性能测试,有助于确定计算机,网络,程序或设备在不利条件下保持一定效率的能力。压力测试也称为疲劳测试。
二 JMeter是什么?
JMeter是一个开源的,100%基于Java的应用程序。 它旨在分析和衡量Web应用程序和各种服务的性能和负载功能行为。
JMeter主要用于测试Web应用程序或FTP应用程序,但目前,它适用于功能测试,JDBC数据库连接,Web服务,通用TCP连接和OS本机进程。 您可以执行各种测试活动,如性能,负载,压力,回归和功能测试,以便针对您的Web服务器获得准确的性能指标。
以下是JMeter支持的协议列表:
- Web Services - SOAP / XML-RPC
- Web - HTTP, HTTPS sites ‘web 1.0’ web 2.0 (ajax, flex 和 flex-ws-amf)
- 通过JDBC驱动程序的数据库
- 目录 - LDAP通过JMS面向消息传递的服务
- 服务 - POP3, IMAP, SMTP
三 压测流程
3.1 添加虚拟用户组
JMeter是由Java实现的,并且使用一个Java线程来模拟一个用户,因此线程组(Thread Group)就是指一组用户的意思,换句话说一个线程组就是一组虚拟用户(virtual users),这些虚拟用户用来模拟访问被测系统。
3.1.1 线程组设置
- 线程数:这里就是指虚拟用户数,默认的输入是“1”,则表明模拟一个虚拟用户访问被测系统,如果想模拟100个用户,则此处输入100。
- Ramp-Up Period (in seconds): 虚拟用户增长时长。
举个栗子:比如你测试的是一个考勤系统,那么实际用户登录使用考勤系统的时候并不是大家喊1、2、3 - 走起,然后一起登录。实际使用场景可能是9点钟上班,那么从8:30开始,考勤系统会陆陆续续有人开始登录,直到9:10左右,那么如果完全按照用户的使用场景,设计该测试的时候此处应输入40(分钟)* 60(秒)= 2400。但是实际测试一般不会设置如此长的Ramp-Up时间,原因嘛,难道你做一次测试要先等上40分钟做登录操作?一般情况下,可以估计出登录频率最高的时间长度,比如此处可能从8:55到9:00登录的人最多,那这里设置成300秒,如果“线程数”输入为100,则意味着在5分钟内100用户登录完毕。 - 循环次数:该处设置一个虚拟用户做多少次的测试。默认为1,意味着一个虚拟用户做完一遍事情之后,该虚拟用户停止运行。如果选中“永远”,则意味着测试运行起来之后就根本停不下来了,除非你把它强制咔嚓。
3.2 添加被测页面
3.2.1 被测页面设置
3.3 配置结果树
3.3.1 查看结果
应该是JSON
格式的数据,但是我什么都看不懂。第一缺乏网络知识,第二缺乏JSON知识。
四 测试结果
4.1 断言
断言是用来检查测试中得到的响应数据是否符合预期,断言一般用来设置检查点,用以保证性能测试过程中的数据交互是否与预期一致。