本文介绍Locust在性能测试过程中的日志管理,这是在测试流程中不可缺少的一步。如后期有什么问题,在排查问题,或者解决问题时,一个详尽或者可调试的日志机制可以提供可能的线索。
我们以一个案例来说明logging的使用方法。locust_file.py如下,logging使用的是python标准库中的模块。
from locust import HttpUser, task, between
import logging as log
class MyUser(HttpUser):
wait_time = between(3,5)
@task
def open_blog(self):
with self.client.get("/13734261/2540530",catch_response=True) as response:
if response.status_code != 200:
response.failure("Threre maybe some issues in the requests.")
log.error("请求执行有错误。")
elif response.elapsed.total_seconds() > 5:
response.failure("Request took too long")
log.error("请求响应超过5秒钟")
log.info("请求执行成功!")
复制
这样Locust在执行性能测试时,命令行代码可以写为:
locust -f locust_file_chapter13.py --logfile=locust.log
复制
这样它就会在当前目录下创建一个文件“locust.log” ,而不会在默认下的控制台显示日志了。根据如上的locust files,其日志样本如下:
[2020-12-03 21:18:28,159] xx.local/INFO/locust.main: Starting web interface at http://:8089
[2020-12-03 21:18:28,167] xx.local/INFO/locust.main: Starting Locust 1.1.1
[2020-12-03 21:18:58,420] xx.local/INFO/locust.runners: Hatching and swarming 1 users at the rate 1 users/s (0 users already running)...
[2020-12-03 21:18:58,421] xx.local/INFO/locust.runners: All users hatched: MyUser: 1 (0 already running)
[2020-12-03 21:18:58,941] xx.local/INFO/root: 请求执行成功!
[2020-12-03 21:19:04,164] xx.local/INFO/root: 请求执行成功!
[2020-12-03 21:19:09,266] xx.local/INFO/root: 请求执行成功!
[2020-12-03 21:19:12,799] xx.local/INFO/root: 请求执行成功!
[2020-12-03 21:19:17,171] xx.local/INFO/root: 请求执行成功!
[2020-12-03 21:19:20,612] xx.local/INFO/root: 请求执行成功!
[2020-12-03 21:27:18,787] xx.local/INFO/locust.main: Running teardowns...
[2020-12-03 21:27:18,787] xx.local/INFO/locust.main: Shutting down (exit code 0), bye.
[2020-12-03 21:27:18,787] xx.local/INFO/locust.main: Cleaning up runner...
复制
文章转载自TimTest,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。