在上期文章,小编分享了一些关于jmeter的使用心得,不知是否对大家的测试工作有些许帮助呢,本期将继续带来jmeter相关的使用心得。大家可以点击下面的链接来查看之前分享的内容。
往期文章:jmeter使用心得(一)
一、jmeter的日志保存 在接口测试中,请求相关的日志是必不可少的,每当测试中遇到了问题,大都需要日志来了解、定位、分析、反馈问题。作为一个接口测试工具,jmeter有非常完善的日志收集与统计系统,如结果树、聚合报告、汇总报告等,足以应对日常各类测试的需求。而如何选择和使用合适的方式保存日志将是我们接下来探讨的重点。 在GUI模式中,我们可能通常使用默认的方式来添加像结果树这样的监听器,因为在GUI模式下,结果树默认会显示接口请求、返回的所有必要信息,在测试量不是很大的情况下,这是完全可行的,并且可以直观地看到所有请求结果是否正常返回。但是,当我们的测试量比较大,或者需要用NO-GUI模式进行测试时,就必须要启用日志保存到文件的功能,以便做后续的分析。在默认情况下,我们添加的结果树不会保存请求、返回的具体信息,所以还要自己设置一下。如果磁盘空间充裕,可以将这些选项全部选中,这样保存的日志是最全的,或者至少选中输入输出选项。
日志的设置项,红框为建议一定要勾选的项
如果我们只需要看错误日志,也可以勾选仅错误日志选项,同时不选择上图中的Save Success选项。但这么做其实有风险,如果结果出错但返回的结果状态码是200,且我们所设置的断言未能判断出错误,那么这条潜在的异常信息就会被我们所忽略,后续可能会带来追查问题的困难。所以在有条件的情况下,尽量还是将所有请求信息都保存下来,以防万一。
仅错误/仅成功日志,非必要不建议在此勾选
不过,像结果树这种比较耗费资源和磁盘空间的日志,也不是每次都需要保存的。比如在进行多分组的性能测试时,请求结果基本稳定,我们对具体请求结果的关注度不高,那么也完全可以关掉结果树的日志保存。总之,日志保存需要结合具体的测试需求,需要有的时候一定要有。
二、jmeter中时间函数的应用 在jmeter中,有一些非常实用的内置函数,通过函数助手,我们可以完全以图形化的方式来使用这些函数实现不同的功能。在这些函数中,有一个函数小编经常使用——时间函数(__time)。这个函数对于小编的测试来说不在于多么它多么强大,而是在于它能为我的测试带来一些便利。下面我举例来说。
接着本期第一个话题,日志保存。在测试中,我们可能经常要用相同的脚本对服务进行测试,而按照一般的日志保存方式,我们的日志名都是一样的,那么每次测试的日志会保存到一个文件里,甚至可能由于某些日志设置,前一次的日志会被下一次的日志覆盖。如果不需要之前的日志还好说,但在一些项目中,我们可能出于各种目的会保存很多历史日志。这样,在进行下一次的测试之前,一定要将前一次的日志转移或重命名,这样做一是有遗忘风险,二是非常麻烦,有时一个脚本会可能产生很多个日志。在这里,时间函数可以帮我们解决这个痛点问题。其实,说到这,想必大家已经知道了,就是在我们保存日志的路径名称上合理地加上时间函数,这样,我们保存的日志就可以按天、时、分、秒等来进行命名,自动地进行了区分。比如像下面这样,就是按“天”来保存日志:
时间函数设置,图中为年-月-日
在日志路径中添加时间函数
这里可能有同学会担心,一次测试中,每条请求的时间不同,会导致保存到不同的文件中去么。答案是否定的,因为单次测试中,日志文件会固定以脚本开始运行的时间来命名。
除了在日志名的应用,时间函数还可以用在很多其他地方,比如在请求的参数中,如果需要用到时间,或某个参数需要每次请求时不同,都可以用时间函数实现。
小结
本文主要分享了在使用jmeter进行测试时的一些心得体会。以上内容均来自小编自身在测试中所遇到的问题以及总结的经验,后续还会继续为大家带来这方面的分享,如果大家有不同的看法或更好的建议,欢迎一起讨论~