性能测试分析
响应时间测试:
测试后端系统处理请求的速度。通过发送HTTP请求到应用的不同功能(如获取当前天气、未来预报等),可以测量从发送请求到接收响应所需的时间。这有助于识别后端处理过程中可能存在的瓶颈。
并发用户测试:
评估应用在面对多个并发用户请求时的性能。通过配置JMeter生成大量虚拟用户同时发送请求,可以测试后端服务器在高并发情况下的稳定性和处理能力。这种测试可以揭示并发处理限制和可能的同步问题。
负载测试:
系统性地增加发送到后端的请求负载,观察应用如何扩展以及其性能何时开始下降。通过逐步增加请求的数量(例如每秒请求数),可以评估后端系统的最大承载能力。
压力测试:
超过正常运行参数对后端进行测试,以查看其在极端条件下的表现。例如,可以持续发送高强度的HTTP请求,模拟突然的流量峰值或持续的高负载,测试后端系统的鲁棒性和恢复能力。
使用Jmeter进行性能测试:
Jmeter安装:
1. 进入jdk官网,下载JDK8并配置环境变量。Java Downloads | Oracle
2. 进入官网Apache JMeter - Download Apache JMeter下载Jmeter压缩包
使用Jmeter完成对模型响应时间测试
为了测试模型的响应时间,我们使用JMeter对指定的页面进行性能测试。具体步骤如下:
1. 首先,选定进行测试的页面,这里选定题目推荐的页面,【CSEduQAI用户登录/注册界面】_题目推荐
2. 在JMeter中,通过右键点击“测试计划”,选择“添加”->“线程(用户)”->“线程组”来创建一个新的线程组。
接下来,配置线程组的参数,包括:
线程数:代表虚拟用户数,每个虚拟用户对应一个线程。例如设置为10,意味着有10个虚拟用户同时进行测试。
Ramp-Up Period (in seconds):所有虚拟用户启动的时间。如设置为2秒,则10个虚拟用户将在2秒内均匀启动,即每0.2秒启动一个用户。
循环次数:每个线程执行的请求次数。若设置为100,则每个线程将发送100次请求,总请求次数为1000次。若选中“永远”,则测试将持续进行直到手动停止。
Delay Thread creation until needed:延迟创建线程直到需要时。
调度器:可设置线程组的开始和结束时间。如需配置持续时间或启动延迟,需勾选此项。设置中还可以指定测试的持续时间和启动延迟。
2. 创建一个HTTP请求:在JMeter中,为线程组添加一个HTTP请求。在"Server Name or IP"字段中填入目标域名,选择“GET”作为请求类型。通过这种方式,可以配置HTTP请求来获取特定的网页数据:
3. 接下来,在JMeter中右键点击线程组,选择“添加”->“监听器”->“查看结果树(View Results Tree)”。这样设置后,可以通过结果树监听器查看每个请求的执行结果,确认是否成功访问页面,并查看返回的HTML信息及其他相关数据。这个监听器对于测试结果的分析和调试非常有用:
4. 在JMeter中,右击HTTP请求,选择“添加”->“断言”->“响应断言”。在“patterns to Test”栏中添加“时间”、“描述”、“题单”等关键词,并设置匹配规则为“包含”,以确保页面加载的是预期的天气信息。接着,再右击HTTP请求,添加“断言结果”监听器,通过它可以查看断言的测试结果,确认是否成功匹配到预期的文本。这样的设置帮助验证页面内容是否符合期望,确保正确性和有效性
5. 最后,在JMeter中右击线程组,选择“添加”->“监听器”->“聚合报告(Aggregate Report)”。运行测试后,聚合报告将展示关键的性能指标,如平均响应时间,这是服务器响应请求所需的平均时间;最小和最大响应时间,用以观察响应时间的波动;吞吐量,即每秒处理的请求量,反映了服务器的处理能力;以及错误率,即请求失败的百分比。通过这些数据,你可以详细了解系统性能,并通过响应时间图形直观地查看结果。这些信息对于评估和优化系统性能至关重要。
根据聚合报告的结果,我们发现在执行了10000次请求的测试中,服务器表现出一定的波动,平均响应时间为502毫秒,最快响应时间为146毫秒,而最慢的响应时间达到21029毫秒。大部分请求处理结果并不理想(90%的请求在886毫秒内完成)。此外,测试中的异常率为0.03%,在误差接受范围内但是如果没有异常会更好。吞吐量为98.13请求/秒,指出了服务器的处理能力。整体来看,服务器在处理大量并发用户请求时性能出现一定的下降。