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 ] 不等于 同时在线用户数

 
 

 
 

 
 

最新文章

  1. Android前端人员与后台开发的撕逼(一)
  2. CGCDSSQ
  3. iOS 使用interface builder 创建太复杂的constrains时容易产生crash
  4. NeHe OpenGL教程 第三十五课:播放AVI
  5. 如何使用LiveSuite debian img格式的镜像文件刷入nand
  6. lfs遇到的一些问题--后续阶段
  7. 【SSRS】入门篇(二) -- 建立数据源
  8. xquery
  9. java基础练习 8
  10. nlog学习使用
  11. Java编程练习(四)——集合框架应用
  12. 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](三)
  13. PendingIntent
  14. 洛谷P3203 [HNOI2010]弹飞绵羊(LCT,Splay)
  15. 常见jquery面试题
  16. 简单的新手加法运算(基于Struts2)
  17. python中的基本数值计算
  18. ios初识UITableView及简单用法一
  19. str_replace中的匹配空白符,必须用双引号
  20. JAVA 传递

热门文章

  1. Mysql实战之高可用HMA
  2. POJ 3254:Corn Fields(状态压缩DP)
  3. Codeforces 785D Anton and School - 2 (组合数相关公式+逆元)
  4. 洛谷P2056 采花
  5. 数位DP毕业题
  6. leetcode 389 map iterator 的使用
  7. 糗事百科python爬虫
  8. android 微信开发交流群
  9. 【BZOJ4476&JSOI2015】送礼物(二分,RMQ)
  10. 【Windows Message】MFC 通过F5,刷新桌面