【 面试必问】关于Jmeter与其他测试软件的对比,以及企业为何优先选择Jmeter;
互联网行业常见测试分类以及测试指标;
性能测试分类
-
性能测试:
- 对系统不间断施压,验证系统在指定资源范围内,是否达到性能指标
- 通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试
-
压力测试
- 超过安全负载后对系统不断施压,直到系统崩溃,得出【系统最大承受能力】
- 通过在一定的负荷条件下,长时间连续运行系统给系统性能造成的影响
-
负载测试
- 对系统不断施压,当1项以上指标达到临界值后继续加压,看【系统处理能力变化】
- 主要针对系统CPU,内存,磁盘,带宽等进行指标监控
-
稳定性测试
- 确定软硬件配置情况下,对系统分配一定的业务压力运行一段时间,检查【系统是否稳定】
常见工具
-
LoadRunner
- 性能稳定,压测结果及细粒度大,可以自定义脚本进行压测,但是太过于重大,功能比较繁多
-
Apache AB(单接口压测最方便)
- 模拟多线程并发请求,ab命令对发出负载的计算机要求很低,既不会占用很多CPU,也不会占用太多的内存,但却会给目标服务器造成巨大的负载, 简单DDOS攻击等
-
Webbench
- webbench首先fork出多个子进程,每个子进程都循环做web访问测试。子进程把访问的结果通过pipe告诉父进程,父进程做最终的统计结果。
-
Jmeter (GUI )
-
开源免费,功能强大,在互联网公司普遍使用
-
压测不同的协议和应用
- Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)
- FTP
- Database via JDBC
- Message-oriented middleware (MOM) via JMS
- Mail - SMTP(S), POP3(S) and IMAP(S)
- TCP等等
-
使用场景及优点
- 功能测试
- 压力测试
- 分布式压力测试
- 纯java开发
- 上手容易,高性能
- 提供测试数据分析
- 各种报表数据图形展示
-