Load Testing Tableau Server Using Tabjolt

Author: Nikhil Pai J


An Overview of Tabjolt

Tabjolt is a point-and-run load testing tool for the tableau server. It is a tableau community-backed load testing tool that is widely used for testing the scalability of your tableau server. It is built on top of JMeter and is an open-source tool available through Github. TabJolt is optimized for the Tableau presentation model and can load visualizations and interpret possible interactions during test execution without the need to write and maintain complex scripts.


When to use Tabjolt
  • Deploying a new server to test whether your tableau server’s scalability works in accordance with your workload.

  • To fine-tune your server configuration to suit your hardware, workbooks, and environments.

  • Measure and monitor the effects of configuration changes to select the best configuration.

  • Completing a load test as part of go-live testing for Tableau Server in order to accelerate the time it takes to do a full load test.

Pre-requisites
  • Windows machine with a minimum of two cores with 8 GB or more RAM.

  • Tableau server up and running with all the necessary Admin credentials to log in to the server in order to perform load testing.

  • Tableau desktop installed on your machine.

Steps to Install and configure Tabjolt

Step 1: Download the complete files from Github from Tabjolt-GitHub link along with the project files.



Step 2: Start the installation by using the TabJolt windows installer.



Step 3: Select the folder to install your Tabjolt tool into.




Step 4: Fill in the information with your credentials in the relevant fields.



Step 5: specify which views in your Tableau server will be load tested by TabJolt.


Note: Tabjolt automatically populates these views with URLs from your default site and other sites if your server has multiple sites.

In order to add or edit the URLs navigate to your views on your server and copy the link.


For example, the default site view URL in the browser looks like this:

https://localhost/#/views/WorldIndicators/GDPpercapita?:iid=1

The entry in the Target View URLs text field will be like this:

/views/WorldIndicators/GDPpercapita



Step 6: Provide the credentials for your remote login if you are using a different virtual machine to run the load test. If your current machine has permission to access or collect windows performance counter, click on the first option.


Note: If the Windows user account that you use to execute TabJolt doesn’t have permission to collect windows performance counter from Tableau server host machines, you will want to provide a Windows user account that has the correct permissions to do so. Sometimes, this is useful when the Tableau Server you are testing is in another domain than where your TabJolt load generator machine resides. While testing over networks is fine, as a best practice, consider the implications of having a noisy network with other traffic on it and/or the bandwidth available between the load generator and the target Tableau Server. Your results will reflect any degradation caused due to external changes in the network conditions.



Configuring Postgres DataBase

To configure Postgres, you must execute the Postgres SQL scripts that you downloaded while installing Tabjolt.(in C:\TabJolt )


Steps to execute the scripts:

1. Open the administration tool PGADMIN III, which is installed as part of the Postgres installation.


2. Select one of the databases to launch the SQL query execution UI from PGADMIN III.

IMPORTANT: The next step creates a new database.


3. After you open the SQL query execution UI, open and run the postgresDBSchemaPart1.sql script.



4. Next, connect to the newly created database (PerfResults) and then run the second script, postgresDBSchemaPart2.sql, which creates the schema and necessary users to allow TabJolt to run.


Configuration to collect JMX Counters

TabJolt can collect Windows performance counters along with the JMX metrics from the Tableau server. It helps identify any performance bottlenecks that might occur during the Load test.

JMX counters allow you to record the CPU and RAM utilization during the Tabjolt tests.


Steps to configure collection of JMX metrics:

1. Navigate to c:\tabjolt\config\dataretriever.config. In the <hosts>..</hosts> section, you can specify the hosts (with the applicable counters) that you want to collect performance counters from.



2. Tableau server, by default, has JMX counter collection disabled. In order to enable the collection of JMX counters, run the following commands

tsm stop

tsm configuration set -k service.jmx_enabled -v true

tsm pending-changes apply

tsm start


Note: If JMX counters cannot be enabled due to Administrative/access reasons, login to the Tableau Server Manager Web UI and monitor the Memory and CPU usage of the server during the TabJolt tests. This is important as TabJolt consumes a lot of resources to test multiple threads/users specified for multiple views (based on the Tableau server hardware configurations) so as to make sure the server does not overload and fail.


Steps to run a Tabjolt test

Note: It is highly recommended to perform a server restart (tsm restart) between TabJolt tests in order to ensure consistent results. If a server restart is not possible after each test case, make sure to give ample time between tests and check for overutilization of memory usage before each test.


Choosing the load mix:

Tabjolt comes with four pre-loaded load mixes that allow you to test for conditions for scalability of your server, like testing for multiple users that are concurrently loading and interacting with visualizations.


1. InteractVizLoadTest.jmx - Makes a simple interaction test with the views.

2. ViewVizLoadTest.jmx - is a simple test and just loads the visualization without doing any interactions.

3. ViewInteractVizLoadTest.jmx - will do an interaction test for 50% of the test time and a view test with the other 50% of the test time.

4. InteractWebEditVizLoadTest.jmx - will simulate web edit actions for 10% of the test time and interactions for 90% of the test time.


Running tests using the command line:

Open your windows command prompt, navigate to c:\tabjolt and start on the scaling tests.


go --t=testplans\InteractVizLoadTest.jmx --d=240 --c=1


The command tells TabJolt to run the test for 240 seconds (using the --d parameter) and to run a single user client (--c). These parameters can be changed based on the user’s requirements. The below image shows the command prompt during the execution of the test.



After the run is completed, it displays the run ID, which will be needed to be used as a filter while analyzing the data for your visualization in Tableau Desktop.


Note: If while installing and configuring TabJolt a Master password was set to encrypt your Tableau server password(Step 4 of install and configure TabJolt), use --m parameter to include your master password while running your test plan and use the following example command to run test cases.


Example:

go.bat --m=<master-password> --t=testplans\InteractVizLoadTest.jmx --c=5 --d=60


Analyzing the results:

After the testing is completed, open the workbook that will be automatically generated at c:\tabjolt\PerformanceViz.twb using Tableau Desktop from the same computer.





Analyzing the load test data is exploratory work. Tabjolt provides the users with some key worksheets with some metrics like test cases per second, response time, JMX metrics, host metrics, etc. in the workbooks automatically.


Based on these test cases, we can drill down further to find patterns and how the workload performs under load.


As a best practice, ensure that the workbook you are load testing on works best for a single user before moving on to multiple concurrent users.


Summary

Tabjolt allows for the user to load test their Tableau server for testing their current server configuration and also when setting up a new server to see how your server performs when there are multiple users working concurrently over multiple views.


Tabjolt can be further customized based on your requirements. Since it runs on JMeter, it can be customized to fit your test performance needs, hence flexible.


Tabjolt is a community-backed load testing tool that makes it reliable and constantly being updated for any fixes or enhancements.


References:
  1. Tabjolt Guide

  2. Tutorial on Tabjolt

  3. GitHub repo on Tabjolt and documentation

531 views0 comments

Recent Posts

See All