Load testing OpenERP with JMeter


Apache JMeter is open source software, a 100% pure Java desktop application designed to load test functional behavior and measure performance.I am going to explain on load testing OpenERP with Jmeter.


Download Apache Jmeter from,
Extract it
Go to jakarta-jmeter-2.4/bin
Run ./jmeter.sh(linux) or jmeter.bat (windows)


1) Right click on Test plan -> Add -> Threads -> Thread group

2) In the thread group, enter

Number of users:Number of users for which you are going to simulate the test.
Ramp-Up period: Number of seconds delay between user call.
Loop count: Number of times to repeat the test

3) Right click the new thread group -> Add -> Sampler -> SOAP/XML-RPC request. Rename it to XML-RPC Login.

Fill the fields,

URL: http://IP_ADDRESS:8069/xmlrpc/common

    <?xml version="1.0"?>

Note: Change IP_ADDRESS,DB_NAME, USERNAME and PASSWORD according to your real values.I assume XML-RPC of openerp listens at 8069, which is default.

4) Add another SOAP/XML-RPC request and name it as XML-RPC partners.


<?xml version="1.0"?>
<value>         <int>UID</int></value>


     <data>   <int>1</int>
     <data>   <int>2</int>


     <data>   <string>name</string>
<data>   <string>title</string>

We are trying to read ‘name’ and ‘title’ from partners table, where id is in [1,2]. You can change/add according to your need.

5) Now time to put monitoring tools,

Right click on Thread group -> Add -> Listeners -> View Results Tree or Aggregate Graph or Aggregate report or Monitor Results or Graph results and so on.

6) Time to run the test now, Click Run -> Start from menu.
Click on each listeners and see the responses.





You can disable the login XML-RPC after the first time.


OpenERP – Tally Migration


Tally is a popular accounting software.

Integrating OpenERP with Tally is of Vital importance when it comes to Indian market.

As a first big step towards it, We, http://e-ndicus.com, decided to write a module which can help migrating accounts from Tally to OpenERP.

Here I am going to discuss about our  new module.


  • Load Chart of account from Tally.
  • Optionally includes Opening Balance


1) Tally:

  •  Install the module which is available at   https://code.launchpad.net/~e-ndicusteam/openerpgit/tally_openerp_endicus
  •  Go to your tally (9.2+ Version):
  • choose F12 and set server type as Both.
  • Set port to 9000 ( or any available port )

2) OpenERP:

  • Navigate to Administration -> Customization -> Load Data from Tally and choose Get Accounts menu.
  • Give the IP address where Tally is exposed with port 9000. For eg,
  •  Check, Opening Balance option, If you need opening balance as well from Tally.
  •  Click the Proceed button.
  •  Fill the module name, author and other details in the next screen.
  •  Submit and download the resulting module to a location.
  •  Install the downloaded module .

Now you will see the all the accounts from tally be imported to OpenERP and populated in the Chart of Accounts.

Download link:


Demo Video link:


1) Currently this module is meant to work only with OpenERP V5. Soon, I will be upgrading it to V6.

2) It can be considered as alpha stage as the module needs rigorous testing.

Cheers 🙂

OpenERP and TDS support

As promised, here I am with the basic TDS functionality for OpenERP, Indian standards.

Please refer Income_tax_in_India for details related to Indian tax structure.


  • TDS linked with Invoice Line
  • Accounting TDS and Deduction
  • TDS with Lower and Zero Rate
  • Accounting TDS and Deducting it Later
  • TDS Helper for paying TDS to Govt
  • Viewing TDS Pending, payable, zero/reduced rate

Legal Reports:

  • Form 16A
  • Form 26Q
  • Form 26Q Annexure
  • Form 27Q
  • Form 27Q Annexure
  • Form 26A
  • Form 26A Annexure
  • Form 27A
  • Form 27A Annexure

Download Link:

To provide core functionality,


To provide legal reports,


Configuration Steps:
Once installed the two modules,

Go to Accounting ->Coniguration ->Financial Accounting -> TDS

You will see three sub-menus,

  • Nature of Payment
  • Deductee Types,
  • Deductors,

Nature Of Payment:
Enter the details like code,name. From this window, create a section and link it here.
Choose a Duties&taxes account, where all the TDS amount related with this Nature of payment will be encoded.

Deductee Type:
This is the important part,
Enter a name,choose residential status.

In deductee line tree, add a new line.

Choose a nature of payment and enter respective Tax rates.
Date from is the start date, For eg April 1,2011.

Feed the exemption limit for respective taxes.

Enter name,designation and choose a address.This is only useful for TDS reports which are to be filed.

The next step is to configure the respective accounts,

There are three types of account,
1) Patner account
2) Expense account
3) TDS account (Chosen in the nature of payment)

Partner Account:
Go to the partner account, for eg,Creditors.
Enable TDS applicable check box and choose a deductee type created before.

Advanced TDS entries for Lower/Zero tds deductions, where you can overwrite the default tax rates.

Expense Account:
Go to the expense account, For eg, Expense.

Enable TDS applicable and choose a Nature of payment and leave deductee type empty.
Raising Invoice with TDS:

Navigate to Supplier Invoice, create a new invoice as usual.

In invoice line, enable Is TDS applicable and deduct now options.

Now in invoice main window, press ‘Gen TDS’ button before approving invoice.Then click compute taxes button, which will populate tds amount field.

You can now approve the invoice and check the Residual amount.

TDS Payment to Government:

TDS helper aids for TDS payment.
Navigate to Accounting -> Suppliers -> TDS helper.

Fill the fields,

This will create a payment voucher against a partner named, GOVT (yes it is hardcoded as of now ).

To validate the payment, you need to re-visit supplier payment and validate the TDS voucher, just created.

TDS Payables/Pending:

To see pending and paid TDS amount,go to TDS Main menu item.
TDS Main -> TDS entries and filter the needed reports.

Note: There is a known bug which affects TDS searching TDS paid entries; they are not being properly updated.

Visit, Accouting -> Legal reports -> TDS reports.

You will find quartler and annual reports for 26 and 27 with annexure for both report along with Form !6A.

Demo Video:


1) The current module may not fulfill all TDS related stuffs, still we believe, is a good start. We request you people to consider this version as alpha release and report bugs/blueprints in the lauchpad pages. We are open to get feedbacks and improve things.

2) https://code.launchpad.net/~e-ndicusteam/openerpgit/account_voucher_cheque is a dependent module for reporting module.

Who we are:

We, E-ndicus, is an Opensource technologies based organization, an official OpenERP partner, from Chennai.

Reportlab Tamil characters OpenERP


I have finished hacking Reportlab, Python for Tamil character support.

Now reportlab can cleanly render Tamil characters which means OpenERP with nice Tamil PDF reports.

Tamil Characters:

Some of character sets like Tamil or Hindhi can fall in two scenarios,

1) Substitution of original character with two or more glyphs.(க +ி = கி)

2) Re-adjustment of character glyphs. ( க ெ =கெ )

Note: Characters are mapped to respective glyphs (image representation of character ) for PDF rendering.


I tried to analyse reportlab for the mentioned two scenario and found nothing useful.

Hence I hacked the reportlab/pdfbase/ttfonts.py which is reponsible for mapping characters to glyphs.

I have added code which looks and perform,

1) Substitution

2) Re-adjustment

before rendering PDF.

Here is a sample PDF report from OpenERP,


I will soon share the changes as patch.

OpenERP with Subdomain

OpenERP in Subdomain Mode

To acess your OpenERP database with subdomain binding, can be easily done with the following steps in Ubuntu ( or similar Linux distros )

1)  Edit your /etc/hosts and add new lines like,


For eg:    selvam.locahost

2) Then add a new file,assuming endicus is the site name,

$ sudo gedit /etc/apache2/sites-available/endicus

<VirtualHost *>

DocumentRoot /usr/local/lib/python2.6/dist-packages/openerp_web-6.0.1-py2.6.egg

ServerName db1.localhost

ServerAlias *.localhost

<Directory /usr/local/lib/python2.6/dist-packages/openerp_web-6.0.1-py2.6.egg>

Options Indexes FollowSymLinks MultiViews +Includes

AllowOverride All

Order allow,deny

allow from all



I believe DocumentRoot does not have any impact here.

3) $sudo a2ensite endicus

4) In openerp-web.cfg (/usr/local/lib/python2.6/dist-packages/openerp_web-6.0.1-py2.6.egg/doc or in /etc/ ),


dblist.filter=’BOTH’  (To filter Databases based on domain )

dbbutton.visible = False  ( To disable Databases button in login page )

Thats it, Restart apache and openerp-web.

When you access http://selvam.IP:8080 should list only the database,selvam.

Redmine with OpenERP

Last weekend, I decided to write a  module to integrate  Redmine with OpenERP’s Project management and Wiki.
Powerful Project Management application based on Ruby on Rails. More info can be found here,



In Project Management -> Configuration -> Redmine Config -> Create New,



All users from redmine with their e-mail

Note:password will be same as  login name.


The following details will be fetched from Redmine,

1) Projects

2) Associated wiki pages

3) Associated members


1) All tasks w.r.t every project

2)  All tasks work w.r.t to every task

3) Preserves task status (New, In Progress and so on )

4) Task work timings, As the redmine does not seem to store task work (journal) timing, the total time is divided and spread equally among task works.


You can download the latest code from,


In roadmap:

1)  Attachment  handling

2) User permission handling

XLS Reporting in OpenERP


I have added my code which you can find here,


Extract it and read the help.txt file for further info. Good Luck !

What is it ?
I was looking for a native XLS report from OpenERP, which I could not find out. Instead of writing a new extension,

I thought of extending the existing Report engine. I completed the basic version of it.

How to get XLS report ?
You can go to Administration -> Low Level Objects -> Actions -> Report XML and choose a report, then change its type to XLS.

Now try accessing the report as you would do normally. It will through you XLS report.

This extension may not be stable yet, but can be used in development version.


  • No need to write new reports, It will just work with existing RML reports.
  • It can handle maximum of two levels of nested table in RML.
  • No external dependency except python-xlwt module.

How it Works ?

The new modified code adds a new type called xls and additional functions. When a report is invoked and the type is XLS, it will invoke rml2xls module, which will take care of converting the rml to xls and emit it. The rml2xls, depends on rml2html. The output html generated by rml2html is passed to a custom HTML parser. The HTML parser parses the necessary tags and writes into XLS file.

Where to Download ?

Once testing from our side gets over, I will share it with you.

Previous Older Entries

%d bloggers like this: