Locust性能-零基础入门系列(12)-批处理请求

本文主要内容为怎么批量处理类似的请求。在实际的项目中,很多时候我们需要模拟一些类似的请求。特别是,在相同的场景下去运行不同的数据。其目的主要是为了检验在不同的数据环境下,性能的表现是否一致。通常来说,如果性能的表现随着数据的不同而不同,那么是有性能问题的。可以去查看是否不同的测试数据导致后端的测试处理集合不一致,有两种情况。

1)如果后端处理数据集合一致,那很可能是后端逻辑代码的性能稳定性差,需要关注代码执行的稳定性和效率性。对于这种情况,可以获取多次测试结果进行统计分析,首先要先确认刚才的论断,然后再分析代码的性能稳定性。

2)如何后端处理数据集合不一致。首先需要确认实际情况是不是真的处理数据集合不一致。如果就应该不一致,那么就应该考虑涉及代码的可扩展性,特别是性能的响应相差太多的情况。比如一个处理时间为1秒,一个处理时间为5秒,这样的性能相差就算大的了。

说了那么多相似请求的背景,下面以一个案例来讲解,案例是以浏览博客园文章为例子,以浏览多个博客园文章为测试场景,那查看多个浏览请求的性能表现是怎样的。

from locust import HttpUser, task, between

#simulate search from baidu.com
class MyUserBlogs(HttpUser):
    wait_time = between(5,10)
    def open_index(self):
        self.client.get("/")

#https://www.cnblogs.com/ittranslator/p/13561431.html
    @task
    def search_from_blog(self):
        key_words = [13561431,13462874,13215081]
        for i in key_words:
            self.client.get("/ittranslator/p/%i.html" % i)
#host : https://www.cnblogs.com

执行测试命令如下:

locust --host=https://www.cnblogs.com -f locustfile.py 

Locust web页面截图如下:
Locust性能-零基础入门系列(12)-批处理请求

Locust性能-零基础入门系列(12)-批处理请求

猜你喜欢

转载自blog.51cto.com/13734261/2571565