• Locust压力测试Odoo


    Table of Contents

    编写测试任务集 TaskSet

    运行 Locust

    分布式

    运行 master

    运行 slave.

       

    Locust 是个伸缩性很好的压力测试框架,OdooLocust 基于 Locust openerplib Locust扩展

    下载 OdooLocust 源码

    $ git clone https://github.com/nseinlet/OdooLocust.git

       

    安装 python依赖包

    $ cd OdooLocust

    $ sudo pip install -r requirements.txt

       

    安装 OdooLocust

    $ sudo python setup.py install

       

       

    编写测试任务集 TaskSet

       

    新建一个 py 文件 OdooLoadingTest.py 内容 如下

    from locust import task, TaskSet

       

    class SellerTaskSet(TaskSet):

    # @task(5)

    # def read_partners(self):

    # cust_model = self.client.get_model('res.partner')

    # cust_ids = cust_model.search([])

    # prtns = cust_model.read(cust_ids)

     

    # @task(5)

    # def read_products(self):

    # prod_model = self.client.get_model('product.product')

    # ids = prod_model.search([])

    # prods = prod_model.read(ids)

     

    @task(20)

    def create_so(self):

    prod_model = self.client.get_model('product.product')

    cust_model = self.client.get_model('res.partner')

    so_model = self.client.get_model('sale.order')

     

    cust_ids = cust_model.search([('name', 'ilike', 'agrolait')])

    prod_ids = prod_model.search([('name', 'ilike', 'ipad')])

       

    for cust_id in cust_ids:

       

    for prod_id in prod_ids:

     

    order_id = so_model.create({

    'partner_id': cust_id,

    'order_line': [(0,0,{'product_id': prod_id,

    'product_uom_qty':1}),

    (0,0,{'product_id': prod_id,

    'product_uom_qty':2}),

    ],

     

    })

    so_model.action_confirm([order_id])

       

       

    from OdooLocust import OdooLocust

       

    class Seller(OdooLocust):

    host = "192.168.30.128"

    database = "odoo"

    min_wait = 0

    max_wait = 100

    weight = 3

     

    task_set = SellerTaskSet

       

    以上 测试集 用于建立销售订单、并确认销售订单; 至于其他用途的测试集, 则根据用户的需求定制, 基于openerplib 库撰写。

       

    运行 Locust

       

    进入 taskset 存放目录, 运行以下命令

    $ locust -f OdooLoadingTest.py Seller

    说明

    OdooLoadingTest.py taskset 任务集定义py文件

    Seller Locust 实例

       

    运行 Locust 后, 它会开启一个 管理控制台, 输入 运行 Locust URL 例如 http://127.0.0.1:8089/

       

    输入 需要模拟的 用户数量 Number of users to simulate 以及 每秒钟产生的 用户数 Hatch rate, 点击 start swarming

       

    Locust 开始运行 taskset

       

    统计页卡, 表格形式 展示 taskset 运行情况

    图表页卡, 图表形式 展示 taskset 运行情况

       

       

    分布式

    因为 Locust 是单进程运行的, 为了有效发挥 压测节点的性能, 一般要根据节点的配置, 调整为 master/slave分布式

       

    运行 master

    $ locust -f OdooLoadingTest.py Seller --master

       

       

    运行 slave.

    $ locust -f OdooLoadingTest.py Seller --slave

       

    此时可以从 master 看到新加入的 slave.

       

    登陆 Locust 控制台, 可以看到 加入的slave 数量。

       

       

    备注:

       

    RPS [ requests per second ] 不等于 同时在线用户数

       

       

       

  • 相关阅读:
    IL查看泛型
    IL查看委托
    IL查看override
    为VS集成IL环境
    HashTable Dictionary HashMap
    C#集合类
    Resharper团队协作之TODO
    怪物彈珠Monster Strike 攻略
    [Editor]Unity Editor类常用方法
    C# Reflection BindingFlags
  • 原文地址:https://www.cnblogs.com/odoouse/p/8168739.html
Copyright © 2020-2023  润新知