Odoo平台简介

Odoo(以前叫OpenERP)是世界排名第一的开源ERP系统,最早由比利时一家公司开发,经过十几年发展,目前全世界Odoo的使用者超过2百万人,Odoo被翻译成几十种语言,Odoo社区活跃的开发人员超过5000人。从2012年开始,美国著名IT杂志Info World连续5年评选Odoo为“世界最佳开源软件大奖” ERP领域第一名。

Odoo的底层结构很强大,所有模块都可以根据需要自行安装和御载,所以用户能像搭积木一样建构自己期望的系统。即使完全不安装与ERP相关的模块,仅利用 Odoo 自身的底层框架,也能构建出适合各种用途的系统。Odoo是B/S架构,后端基于Python开发,前端基于HTML5和Javascript技术开发,所有功能和操作界面都能在手机上使用,支持手机自适应。

Odoo系统功能繁多,包含几千个功能模块,如销售、采购、库存、财务、生产、项目管理、CRM、门店零售(POS)、人力资源、车辆管理、午餐管理等等。从8.0开始,Odoo大量增加了电子商务、互联网方面的支持,包括电商模块eCommerce, 企业建站系统CMS,和邮件集成的企业及时消息IM。Odoo不再局限于ERP范畴,因而改名为Odoo。Odoo 8.0中,除了增加互联网功能,另一个大改善是重写了仓库管理模块(WMS),极大提升了WMS的功能和性能。Odoo 9.0中,重写了会计模块,极大增强了会计报表功能,并简化了会计操作。Odoo 10.0中,重写了生产管理功能,增强了MRP功能,简化了MRP操作,同时增加了PLM、QC等功能模块。

传统商业ERP按模块、按用户销售,对于发展迅速的客户,会受到很大的制约。用户购买之后,如要定制适合自身的需求,会受到非常多的限制。官方系统升级后,用户如要升级则需要再次花钱。如果不升级,按一般系统发展规律,5-7年将不再适应公司发展要求,又要重新寻找合适的系统。Odoo则非常开放,所有模块都免费下载,没有用户数限制,模块可以任意安装、卸载和升级。

报告目标

Odoo作为世界排名第一的开源ERP系统,目前发展势头很快,软件功能不断改善,版本更新很快。笔者最近5年一直在研究这个软件,陆续实施过一些案例,有成功的,也有不太成功的。这些年,笔者一直在想,这个软件到底能做什么,不能做什么,适合做什么,不适合做什么?

由于是开源软件,软件背后没有一个强有力的商业推广公司,甚至连成体系的推广文档都没有。加之软件功能在快速发展,这几个问题不是三言两语能讲清楚的。因而一直找不到足够权威的人来帮忙解答这些问题。

为了解决自己的疑惑,同时也将我们这些年的研究经验发布出来,给有ERP需求的各位多一个参考选择。

Odoo性能测试报告

测试目的

1) 在XD公司给定的硬件环境,网络环境状况,多并发用户情况下,测试Odoo系统的响应速度;

2) 根据测试结果,判断Odoo是否可以满足XD公司的性能要求。

测试背景

1) XD公司现行CRM系统响应速度慢,各地分公司业务员抱怨较大;

2) XD公司全国各地分公司有35家,代理公司有25家。分布于各地分公司及代理公司的业务员约700名,预计3年内人数将达到1500人;

3) 在XD公司给定的硬件环境,网络环境下,基于Odoo的新系统能否满足XD公司现在及将来发展后的性能要求。

测试范围

本次测试在XD公司总部办公室进行,主要测试服务器的性能(包括Odoo服务器和PostgreSQL数据库服务器),不测试网络状况,不测试客户机的状况,不测试各地分公司的访问状况。

测试环境

【客户机】

联想笔记本电脑,i5双核CPU,8G内存,SSD硬盘。

【Odoo服务器】

XD公司虚拟机,12核CPU,16G内存

【Odoo数据库服务器】

XD公司虚拟机,12核CPU,16G内存

【网络环境】

XD公司总部局域网,客户机和服务器间网络状况极好。

测试需求、内容、工具及方法

测试需求

本次测试需求是:

1) 测试XD公司700多名系统用户(员工),高峰期200名用户同时登录系统的情况下,Odoo系统的响应速度能否达到XD公司的要求。

2) 本次测试在XD公司总部办公室进行,主要测试系统软件及服务器的性能,不考虑异地网络延迟问题。

并发数估算

根据统计规律,软件系统的并发用户数(同时操作系统的用户数)的估算公式如下:

(1) 平均并发用户数: C = n * L/T

(2) 并发用户数峰值: C’ ≈ C + 3 * C的平方根

公式(1)中,C是平均的并发用户数;n是登录用户(在线用户)的数量;L是登录用户的平均在线时间,T指考察的时间段长度。

公式(2)则给出了并发用户数峰值的计算方式中,其中,C’指并发用户数的峰值,C就是公式(1)中得到的平均的并发用户数。该公式假设用户行为符合泊松分布规律。

XD公司的用户情况如下:

1) 总用户数是800,实测高峰在线用户数200;

2) 大部分用户(超过500)是销售业务员,系统登录时间较短,平均每天在1小时以下,销管和财务人员登录时间较长,平均每天估算为4小时;

3) 所有用户的每天的平均登录时间估算为2小时;

4) 用户只在上班时间使用系统,因而考察时间段为上班时间,8小时。

XD公司的并发用户数估算如下:

平均并发用户数 C = n * L/T = 200 * 2/8 = 50

并发用户数峰值 C’ = C + 3 * C的平方根 = 50 + 3 * 7 = 71

用户响应时间标准

软件系统的用户响应时间,业界有一个普遍的标准,即2/5/10原则。也就是说,用户一次操作,如果系统在2秒之内响应,用户会认为是“非常有吸引力”的用户体验;如果在5秒之内响应,会认为“比较不错”的用户体验;如果在10秒内响应,会被认为“糟糕”的用户体验;如果超过10秒还没有得到响应,那么大多数用户会认为这次请求是失败的。

测试内容

本次测试根据XD公司的业务特点,测试了五个代表性操作:

1) 客户查询,输入关键字,查询客户,测试系统响应时间;

2) 新建销售合同,输入客户、课程等信息,点击保存,测试系统响应时间;

3) 客户打款单列表,点击“客户打款单”菜单,系统显示打款单一览,测试响应时间;

4) 打开打款单,随机点击一览中的一条客户打款单,测试系统响应时间;

5) 打款单审核,点击打款单审核按钮,测试系统响应时间。

为了分析不同并发用户数情况下,系统的响应速度的变化,本次测试将依次测试1并发,50并发,100并发,150并发,200并发情况下,上述五个操作的响应时间。

经调查,XD公司现在的CRM系统有客户69080个,客户合同4060条,打款单17890条。本次测试系统导入了XD公司6万多条客户信息,创建了2万多个模拟客户合同。

测试工具

主要测试工具为JMeter 测试软件,JMeter是一款广泛应用的Web系统性能测试工具。JMeter是开源软件,JMeter的详细介绍及下载链接参考: http://jmeter.apache.org/ 。

本次测试的辅助工具还有FireFox浏览器,Firebug浏览器插件,Excel电子表格。

JMeter可以模拟多用户并发向服务器发送请求,并记录每个请求,服务器的响应时间。不过,由于Odoo系统大量使用Ajax连接,每个页面都会同时发出多个请求(根据页面复杂度不同,少的2个请求,多的有20个请求),JMeter记录的单个请求的响应时间并不能反映整个页面的响应时间。

为了获得整页面的响应时间,测试中用JMeter模拟并发用户操作,再通过浏览器访问系统,用Firebug记录整页面响应时间。

测试方法

本次测试采用的方法步骤说明如下:

1) 先用JMeter录制客户查询、新建销售合同、客户打款单列表、打开打款单、打款单审核五个动作动作;

2) 修改录制的脚本,主要是将session_id替换成变量;

3) 用JMeter模拟多用户同时执行上述操作;

4) 同时用Firefox浏览器手工操作客户查询、新建销售合同、客户打款单列表、打开打款单、打款单审核五个动作,用Firebug查看系统响应结果及时间;

5) 依次测试1用户、50并发、100并发、150并发、200并发情况下系统响应时间。

JMeter模拟用户向服务器发出请求,截取服务器的响应数据,响应时间等参数。JMeter可以开启多线程,模拟多个并发用户操作系统的情况。JMeter测试截图如下:

Firebug会记录页面上所有的Ajax的响应时间,及整个页面的响应时间。Ajax记录的系统响应包括三个时间:连接建立时间、服务器响应时间、服务器响应结果传输时间。

在网络状况良好的情况下,连接建立时间、服务器响应结果传输时间几乎没有。下图是在网络状况较差情况下,打开销售合同时候,Firebug记录的页面响应时间。这个截图说明了:

1) 打开销售合同页面,系统发起了10个Ajax调用;

2) 每个Ajax调用包括连接建立时间(灰色),服务器响应时间(紫色),结果传输时间(绿色);

3) 两个Ajax调用之间的间隔时间是本地Java script执行时间;

4) 同一页面的Ajax调用存在并发调用(同时调用)的情况;

5) 包括所有Ajax的调用时间,本地Java script的执行时间,整页面的响应时间是1.49秒;

测试结果及分析

系统性能测试结果

并发数为1, 50, 100, 150, 200情况下,客户查询、新建销售合同、客户打款单列表、打开打款单、打款单审核五个操作的系统响应时间如下:

系统负载情况

当并发用户数从1逐步增加到300时候,Odoo服务器的CPU使用率逐步上升。下图记录的是,测试工具JMeter从16:40测试开始,每3秒钟增加一个并发测试用户,至16:55,并发用户达到300个,服务器的CPU使用率情况。

从图中可以看到,300并发用户时候,CPU使用率约36%。

测试结果分析

1) 从测试结果来看,1个并发用户和50个并发用户,系统响应速度几乎没有变化,五个操作的响应时间都在2秒上下;

2) 100并发用户时候,系统响应速度略有下降,响应速度在2秒至2.5秒之间;

3) 从100并发到200并发,系统响应速度略有波动,但都在2秒至3秒之间;

4) 以目前XD公司的用户数800,连接用户数200,平均并发用户数50,峰值并发用户数71的情况下,系统常见操作的响应时间在2.5秒以下;

5) 考虑到将来的发展,如果员工总数翻一倍,用户数1600,连接用户数400,平均并发用户数100,峰值并发用户数达到142人,系统常见操作的响应时间在3秒以内;

6) XD公司各分公司访问系统时候,考虑到异地网络延迟问题,正常情况下,系统响应时间在4秒内(考虑增加1秒的网络延迟)。根据用户响应时间标准,这个响应时间属于“比较不错”的用户体验(5秒以内)。

关于开源智造(OSCG)

开源智造专注于通过开源技术为企业信息化服务的专业咨询与技术支持的团队,公司核心团队成员均来自各类开源社区的大咖,有着浓厚的开源技术背景和实际客户方业务架构设计能力,公司连续三年获得Odoo官方全球核心伙伴荣誉,Odoo亚太区金牌服务机构,拥有8年行业经验。为广大中小型企业提供开源自主可控的垂直深度行业信息化服务。

我们尤其精于新零售行业ERP,国际外贸行业ERP,智能生产行业ERP,全网互联CRM集成解决方案。

文章编辑:开源智造(OSCG) - 源自欧洲,业界领先的免费开源ERP专业服务商

Odoo:全球第一免费开源ERP权威性能测试报告完整版(绝对珍藏)的更多相关文章

  1. Odoo:全球第一免费开源ERP库龄表的简单实现方法(无需二开)

    问题背景 希望查看库龄超过30天的货物,该如何实现?此种简单数据查询需要二开吗? 解决方案 方法一:Stock Quant列表视图增加过滤器 <filter string="库龄超30 ...

  2. 全球第一免费开源ERP Odoo Ubuntu最佳开发环境独家首发分享

    起源 近年来随着国内的互联网经济的快速腾飞,诞生了很多开源软件创造的市场价值以及企业价值神话,特别是对于企业ERP领域,一直以来都是高昂的国内外产品充实,国内的中小成长型企业越来越需要一套好看又能打, ...

  3. 我们是如何通过全球第一免费开源ERP Odoo做到项目100%交付

    传统友商ERP的交付过程 一.先初步需求调研,后选型功能模块 传统友商ERP第一件事情先对客户方进行初步的调研,客户方无论说什么,友商听过算过,只关心你人数多少,有哪些人涉及到哪些模块,接着对模块进行 ...

  4. 全球第一免费开源ERP Odoo PM OKR项目管理操作指南

    概览 ​ Odoo项目允许你和整个项目团队一起管理项目, 与项目和任务成员中的任何一个人沟通. 它与包含可定制阶段的任务的项目一起工作.项目可以是内部的或客户导向的.任务是项目执行的一部分.你可以给这 ...

  5. 全球第一免费开源ERP Odoo WMS库存管理高级路线设置详解

    概览 路线就是推规则和拉规则的合并整理.Odoo可以配置高级推/拉路线的配置, 例如 : 管理产品的制造链条 为每个产品管理默认位置 根据业务需求在仓库中定义路线, 例如质检, 售后和供应商退货 租用 ...

  6. 全球第一免费开源ERP Odoo仓存功能模块深度应用(一)

    基本功能 库位 库位是一个逻辑存货区,可以是一个物理库区,可以是一个货架.货架上的一个货位.库位可以有子库位 库位有虚拟库位和实际库位,实际库位是实际存放货物的库位,虚拟库位是因复式库存记账而虚构的库 ...

  7. 全球第一免费开源ERP Odoo工业互联网生产制造功能模块术语解析

    物料清单 物料清单(BoM)用于描述物料.每种物料的数量.以及制造某一产品所需的步骤.由于行业和成品性质的不同,同一个文件可能有不同的命名.例如,在制药行业中,可以使用术语“处方”. 周期 产品周期是 ...

  8. Odoo:全球第一免费开源ERP 人力资源模块操作指南(完美珍藏版)

    概述 人力资源管理概述 一般企业里,和人力资源相关的工作有:1)员工合同管理,即员工基本档案管理:2)招聘管理,即岗位及岗位人员补充管理:3)员工薪资计算: 4)员工考勤:5)员工休假管理:6)员工绩 ...

  9. 全球排名第一的免费开源ERP Odoo 12产品发布会北京站开始报名

    Odoo V12 产品(北京)发布会 暨企业数字化转型论坛 快速报名通道:http://odoochina.mikecrm.com/uG8nNu4 随着新版本Odoo 12的发布,开源智造(OSCG. ...

随机推荐

  1. Python_字符串检测与压缩

    ''' center().ljust().rjust(),返回指定宽度的新字符串,原字符串居中.左对齐或右对齐出现在新字符串中, 如果指定宽度大于字符串长度,则使用指定的字符(默认为空格进行填充). ...

  2. IBM x3850 RAID5数据恢复过程

    [raid数据恢复故障描述]    需要进行数据恢复的是北京一家公司的IBM X3850服务器,服务器挂载了5块73G SAS硬盘组成raid5磁盘阵列,4号盘为热备盘(Hot-Spare),由于未知 ...

  3. 微信小程序-获取经纬度

    微信小程序-获取经纬度 最近公司新功能 要求在外的市场人员 发送位置信息回来. 用的还是微信小程序开发.... 微信小程序 提供一个接口 getLocation 这个接口反回来的位置 相对实际位置 相 ...

  4. js基础进阶--编的实用技巧(一)

    我的个人博客:http://www.xiaolongwu.cn 在平时的开发中,编码技巧很重要,会让你少写很多代码,起到事倍功半的效果. 下面总结几种简单的技巧,大家共同学习一下 1. 利用+.-./ ...

  5. Jmeter性能测试 如何利用SQLserver造出大批的数据

    作为一个测试人员,需要做性能测试时候,如果没有实际数据,或者实际数据不适合做压测,就要自己着手造数据了. 以下面的接口测试为例,简单介绍下需要的数据: 这是一个会员注册接口,入参比较多,你可以选用全部 ...

  6. D. Kuro and GCD and XOR and SUM

    Kuro is currently playing an educational game about numbers. The game focuses on the greatest common ...

  7. 【Web】一个非常简单的移动web消息框

    适用:h5+jquery,移动网页最佳 最近在写个简单的公众号页面,前端验证时有些信息要提示,很简单的需求实在不想找啥现成的轮子,又不至于用alert这么粗暴,遂写了个非常简单的消息框,效果如图: 特 ...

  8. Jodd

    Jodd = tools + ioc + mvc + db + aop + tx + json + html < 1.7 Mb Jodd is set of Java microframewor ...

  9. JavaScript prototype详解

    用过JavaScript的同学们肯定都对prototype如雷贯耳,但是这究竟是个什么东西却让初学者莫衷一是,只知道函数都会有一个prototype属性,可以为其添加函数供实例访问,其它的就不清楚了, ...

  10. 在centos上面安装phantomjs

    在opt目录下创建phantomjs文件夹 mkdir -p /opt/phantomjs 把phantomjs解压出来的的文件放到/opt/phantomjs下面 建立软链接 ln -s /opt/ ...