Pythonでのパフォーマンステストにイナゴを使用する場合、メソッドの初期化と重み比の設定

1.パフォーマンステストにイナゴを使用する場合、初期化方法が導入されます

インターフェイスのパフォーマンステストにイナゴを使用する場合、パラメータを渡すためにインターフェイスAを必要とするインターフェイスBがよくあります。この場合、初期化中にインターフェイスAを実行して応答値を取得し、それをインターフェイスBに渡す必要があります。を
参照してください次の例。on_startメソッドは初期化メソッドです。OneメソッドとTwoメソッドはパフォーマンステストメソッドです。実際の実行では、on_startが最初に実行され、One、Twoが途中で実行され、on_stopが最後に実行されます。
テスト。出力内容をテストするために、この方法は、唯一の文書操作を書き込み、特定のデータは同じディレクトリにレポートで表示することができます。.CSVファイル

#coding=utf-8
from locust import TaskSet, task,HttpUser

class MyTaskSet(TaskSet):
    def WriteCSV(self,Str):
        FilePath = "Report.csv"
        with open(FilePath,"a") as FileOBJ:
            FileData = FileOBJ.write(Str+"\n")

    def on_start(self):
        OnStartStr = "TaskSet on_start"
        self.WriteCSV(OnStartStr)
    @task
    def one(self):
        OneStr = "任务1"
        self.WriteCSV(OneStr)
    @task
    def two(self):
        TwoStr = "任务2"
        self.WriteCSV(TwoStr)
    def on_stop(self):
        OnStop = "TaskSet on_stop"
        self.WriteCSV(OnStop)

class WebsitUser(HttpUser):
    weight = 1
    tasks = [MyTaskSet]
    host = "http://www.baidu.com"
    min_wait = 5000
    max_wait = 6000
    stop_timeout = 10



'''
点击STOP,会停止测试,并调用所有当前执行的TaskSet的on_stop,但不会调用teardown函数
ctrl +c,表示停止locust运行,此时会调用TaskSet teardown # 停止locust运行时执行,Locust teardown  # 停止locust运行时执行,(而不会调用TaskSet的on_stop,点击STOP,会停止测试,并调用所有当前执行的TaskSet的on_stop,但不会调用teardown函数)

stop_timeout:Locust停止的秒数,如果为None,将不停止一直执行任务,单位为s秒
-H:指定测试的主机地址(注:会覆盖Locust类指定的主机地址)
-f:指定测试脚本地址(注:脚本中必须包含一个Locust的衍生类)
--no-web:不启动web网页,而是直接开始运行测试,需提供属性-c和-r
-c:并发的用户数,与--no-web一起使用
-r:每秒启动的用户数,与--no-web一起使用
-t:运行时间(单位:秒),与--no-web一起使用
-L:日志级别,默认为INFO
调试命令:locust -f **.py --no-web -c 1 -t 1
运行命令:locust -f **.py


TaskSet on_start  # 每一次开始一个任务时执行
TaskSet tasks…
TaskSet on_stop   # 点击页面stop时,当前所有在执行中的TaskSet执行

'''

第二に、パフォーマンステストにイナゴを使用する場合、重みが導入されます

  1. タスクタグを使用する方法は
    、上記のコードを例として取り上げます。Oneメソッドの重みは80%、Twoメソッドの重みは20%です。メソッドのデコレータで対応する比率を設定します。最後に、ドキュメントの出力結果を確認します。一貫した比率
#coding=utf-8
from locust import TaskSet, task,HttpUser

class MyTaskSet(TaskSet):
    def WriteCSV(self,Str):
        FilePath = "Report.csv"
        with open(FilePath,"a") as FileOBJ:
            FileData = FileOBJ.write(Str+"\n")

    def on_start(self):
        OnStartStr = "TaskSet on_start"
        self.WriteCSV(OnStartStr)
    @task(4)
    def one(self):
        OneStr = "任务1"
        self.WriteCSV(OneStr)
    @task(1)
    def two(self):
        TwoStr = "任务2"
        self.WriteCSV(TwoStr)
    def on_stop(self):
        OnStop = "TaskSet on_stop"
        self.WriteCSV(OnStop)

class WebsitUser(HttpUser):
    weight = 1
    tasks = [MyTaskSet]
    host = "http://www.baidu.com"
    min_wait = 5000
    max_wait = 6000
    stop_timeout = 10

ここに画像の説明を挿入
2.タスク辞書の方法で重みを設定します。
コードは次のとおりです。最後にレポートファイルを確認すると、設定項目も有効です。

#coding=utf-8
from locust import TaskSet, task,HttpUser

class MyTaskSet(TaskSet):
    def WriteCSV(self,Str):
        FilePath = "Report.csv"
        with open(FilePath,"a") as FileOBJ:
            FileData = FileOBJ.write(Str+"\n")


    def on_start(self):
        OnStartStr = "TaskSet on_start"
        self.WriteCSV(OnStartStr)
    @task
    def one(self):
        OneStr = "任务1"
        self.WriteCSV(OneStr)
    @task
    def two(self):
        TwoStr = "任务2"
        self.WriteCSV(TwoStr)
    def on_stop(self):
        OnStop = "TaskSet on_stop"
        self.WriteCSV(OnStop)
    tasks = {
    
    one:4,two:1}


class WebsitUser(HttpUser):
    weight = 1
    tasks = [MyTaskSet]
    host = "http://www.baidu.com"
    min_wait = 5000
    max_wait = 6000
    stop_timeout = 10

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/zhuan_long/article/details/111219368