zoukankan      html  css  js  c++  java
  • 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 ] 不等于 同时在线用户数

       

       

       

  • 相关阅读:
    BZOJ4722 由乃
    LOJ6043 「雅礼集训 2017 Day7」蛐蛐国的修墙方案
    Luogu P2414 [NOI2011]阿狸的打字机
    Luogu P3193 [HNOI2008]GT考试
    Luogu P3167 [CQOI2014]通配符匹配
    Luogu P4503 [CTSC2014]企鹅QQ
    Luogu P5446 [THUPC2018]绿绿和串串
    Luogu P5329 [SNOI2019]字符串
    免密码ssh2登录
    mooon模板的automake、autoconf、m4和libtool版本信息
  • 原文地址:https://www.cnblogs.com/odoouse/p/8168739.html
Copyright © 2011-2022 走看看