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专业服务商