Author Topic: Graphene Load Tests with Real World Scenarios  (Read 1581 times)

0 Members and 1 Guest are viewing this topic.

Offline cube

  • Hero Member
  • *****
  • Posts: 1404
  • Bit by bit, we will get there!
    • View Profile
  • BitShares: bitcube
great work cube. 

Worker proposal for the future?

fuz,

Thanks for the great idea!  I would make this into a worker proposal if you guys find it useful.
ID: bitcube
bitcube is a dedicated witness and committe member. Please vote for bitcube.

Offline fuzzy

great work cube. 

Worker proposal for the future?
WhaleShares==DKP; BitShares is our Community! 
ShareBits and WhaleShares = Love :D

Offline kenCode

  • Hero Member
  • *****
  • Posts: 2283
    • View Profile
    • Agorise
kenCode - Decentraliser @ Agorise
Matrix/Keybase/Hive/Commun/Github: @Agorise
www.PalmPay.chat

Offline cube

  • Hero Member
  • *****
  • Posts: 1404
  • Bit by bit, we will get there!
    • View Profile
  • BitShares: bitcube
Hi guys

This is a follow up on Akado's and puppies' ideas on Graphene load testing with real-world scenarios.  (See https://bitsharestalk.org/index.php/topic,18337.0.html)

After some research, I discovered Jmeter is a suitable load testing tool for our needs and requirements. (Why Jmeter? See https://university.utest.com/introduction-to-load-testing-with-apache-jmeter)  I went on to develop the Jmeter plugin for Graphene with some good advice from xeroc.

Here is what you can do with Graphene Jmeter plugin:-

1) Load testing with user accounts creation.  You can prepare a list of dummy user accounts in a comma-separated-value (CSV) file or in a database such as mysql and mssqlserver

2) Load testing with user fund transfer.  Again, you can prepare a list of user accounts in a CSV file.

More functionalities can be developed at a later date.

Here is how you can use it:-

1) Download Jmeter - http://www.eu.apache.org/dist//jmeter/binaries/apache-jmeter-2.13.zip

2) Make sure you have the latest Java - 1.8  - http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

3) Unpack Jmeter into a folder - say d:\jmeter

4) Download Graphene Jmeter plugin - http://graphene.cubeconnex.com/download/GrapheneLoadTests.zip

5) Unpack the jar files from GrapheneLoadTests.zip into d:\jmeter\lib\ext

6) Unpack the sample Graphene Load Test Plan.jmx file and two CSV files from GrapheneLoadTests.zip into d:\jmeter

7) Run Jmeter with d:\jmeter\bin\jmeter.bat

8-) When jmeter is running, load the sample Graphene Load Test Plan.jmx

9) Go to Create Account Sampler to configure the Host name/ip and port number.  Point it to your testnet cli-wallet websocket port (Note: NOT http port)



10) Go to the Create Account Test to set the number of threads (aka number of virtual users using the system). Set the ramp-up time higher if you are seeing empty responses from the wallet.

11) Edit the file createaccounts.csv file to pump up the dummy user accounts.  Graphene tester will use this information to create the dummy accounts.



12) Click the 'Play' (green) button to start the load tests.

13) You can view the load test results in the 'View Result Tree'. 

14) You can add other listeners to view statistics in visual charts and graphs.

Load testing requires a lot of COREs (the currency used in testnet).  Make sure you have plenty of them.  You get CORE once you imported your bts 0.9x wallets.

@bytemaster @Akado @puppies
Are such test plans what you have in mind?

Please feel free to comment.



« Last Edit: October 06, 2015, 11:46:54 am by cube »
ID: bitcube
bitcube is a dedicated witness and committe member. Please vote for bitcube.