Jira, Confluence, Bitbucket performance testing Part 3

Part 2.

In this part we will talk about test results and charts which are available out of the box.

But first I would like to notice a change in the toolkit which really makes test monitoring much easier. Now while the test is running you can see metrics right in your terminal window:

It is called Taurus console reporter. This screen is divided into three parts: test information represented by graphs, test information in text and your system information.

System information is a very important section. Because if during a test run you use 100% cpu, it can mean that the load you are trying to put on your Jira, Confluence or Bitbucket instance is not as much as you intended to put. Because your machine does not have enough resources to generate the intended load.

Test Results

I will talk about test results based on a test run for a Confluence instance.

After your test has been completed, you will have the following files in the app/results/confluence:

Let’s talk about each file in detail.

test_1_selenium_create_comment-2020-07-24-14-37-36.853895.html

error_artifacts folder contains information about errors in Selenim tests. For example, here is the test_1_selenium_create_comment-2020-07-24-14-37-36.853895.html:

<html><head>
                            <title>Selenium - UobuX2FuIO - TES - Product Team Confluence</title>
<meta http-equiv="X-UA-Compatible" content="IE=EDGE,chrome=IE7">
<meta charset="UTF-8">
<meta id="confluence-context-path" name="confluence-context-path" content="/confluence">
<meta id="confluence-base-url" name="confluence-base-url" content="https://my.domain.com/confluence">

    <meta id="atlassian-token" name="atlassian-token" content="f83db95dc7c654e23f789178b7ed6b7e98d1077b">

<meta id="confluence-cluster-node-id" name="confluence-cluster-node-id" value="37863810">
<meta id="confluence-cluster-node-name" name="confluence-cluster-node-name" value="node3">

<meta id="confluence-space-key" name="confluence-space-key" content="TES">
<script type="text/javascript">
        var contextPath = '/confluence';
</script>

    

    <meta name="robots" content="noindex,nofollow">
    <meta name="robots" content="noarchive">
    <meta name="confluence-request-time" content="1595590631816">
        
    ..........

As you can see it is the html code of the page, which caused the error. In the test_1_selenium_create_comment-2020-07-24-14-37-36.853895.png file we can see a screenshot of the page:

We have “Unable to communicate with server” error. This information is very useful for understanding why the error happened. In reality we had the java.lang.OutOfMemoryError: Java heap space and the server went down.

bzt.log

This file contains information which you can see in the terminal while running tests:

[2020-07-24 14:32:11,645 INFO root] Taurus CLI Tool v1.14.2
[2020-07-24 14:32:11,646 DEBUG root] Command-line options: {'log': '/var/folders/4r/w8hkd4w51x787tw4ynb29v2w0000gn/T/bzt_deodyr86.log', 'option': None, 'quiet': None, 'verbose': None, 'no_system_configs': None, 'aliases': []}
[2020-07-24 14:32:11,646 DEBUG root] Python: CPython 3.8.5
[2020-07-24 14:32:11,646 DEBUG root] OS: uname_result(system='Darwin', node='Alexeys-MacBook-Pro-2.local', release='19.6.0', version='Darwin Kernel Version 19.6.0: Sun Jul  5 00:43:10 PDT 2020; root:xnu-6153.141.1~9/RELEASE_X86_64', machine='x86_64', processor='i386')
[2020-07-24 14:32:11,646 INFO root] Starting with configs: ['confluence.yml']
[2020-07-24 14:32:11,649 DEBUG root] Using personal config: /Users/alexm/.bzt-rc
[2020-07-24 14:32:11,649 INFO Engine] Configuring...
[2020-07-24 14:32:11,718 DEBUG Engine] Base configs list: ['/Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/venv/lib/python3.8/site-packages/bzt/resources/10-base-config.yml']
[2020-07-24 14:32:11,719 DEBUG Engine.Configuration] Configs: ['/Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/venv/lib/python3.8/site-packages/bzt/resources/10-base-config.yml']
[2020-07-24 14:32:11,719 DEBUG Engine.Configuration] Reading /Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/venv/lib/python3.8/site-packages/bzt/resources/10-base-config.yml as YAML
[2020-07-24 14:32:11,742 DEBUG Engine] User configs list: ['/Users/alexm/.bzt-rc', 'confluence.yml']
[2020-07-24 14:32:11,742 DEBUG Engine.Configuration] Configs: ['/Users/alexm/.bzt-rc', 'confluence.yml']
[2020-07-24 14:32:11,743 DEBUG Engine.Configuration] Reading /Users/alexm/.bzt-rc as YAML
[2020-07-24 14:32:11,747 DEBUG Engine.Configuration] Reading confluence.yml as YAML
[2020-07-24 14:32:11,762 DEBUG Engine.Configuration] Configs: ['/Users/alexm/.bzt-rc', 'confluence.yml']
[2020-07-24 14:32:11,762 DEBUG Engine.Configuration] Reading /Users/alexm/.bzt-rc as YAML
[2020-07-24 14:32:11,766 DEBUG Engine.Configuration] Reading confluence.yml as YAML
[2020-07-24 14:32:11,781 DEBUG Engine] Requesting updates info: https://gettaurus.org/updates/?version=1.14.2&installID=macos-acde48001122
[2020-07-24 14:32:11,781 DEBUG HTTPClient] Making HTTP request GET https://gettaurus.org/updates/?version=1.14.2&installID=macos-acde48001122
[2020-07-24 14:32:11,781 INFO Engine] Artifacts dir: /Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/app/results/confluence/2020-07-24_14-32-11
[2020-07-24 14:32:11,783 DEBUG Engine] New artifact filename: /Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/app/results/confluence/2020-07-24_14-32-11/effective
[2020-07-24 14:32:11,785 DEBUG Engine.Configuration] Dumping YAML config into /Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/app/results/confluence/2020-07-24_14-32-11/effective.yml
[2020-07-24 14:32:11,807 DEBUG Engine.Configuration] Dumping JSON config into /Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/app/results/confluence/2020-07-24_14-32-11/effective.json
[2020-07-24 14:32:11,808 DEBUG Engine] New artifact filename: /Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/app/results/confluence/2020-07-24_14-32-11/merged.yml
[2020-07-24 14:32:11,809 DEBUG Engine.Configuration] Dumping YAML config into /Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/app/results/confluence/2020-07-24_14-32-11/merged.yml
[2020-07-24 14:32:11,816 DEBUG Engine] New artifact filename: /Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/app/results/confluence/2020-07-24_14-32-11/merged.json
[2020-07-24 14:32:11,817 DEBUG Engine.Configuration] Dumping JSON config into /Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/app/results/confluence/2020-07-24_14-32-11/merged.json
[2020-07-24 14:32:11,817 DEBUG Engine] Add existing artifact (move=False): confluence.yml
[2020-07-24 14:32:11,818 DEBUG Engine] Copying confluence.yml to /Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/app/results/confluence/2020-07-24_14-32-11/confluence.yml
[2020-07-24 14:32:11,819 DEBUG root] Closing log handler: /var/folders/4r/w8hkd4w51x787tw4ynb29v2w0000gn/T/bzt_deodyr86.log
[2020-07-24 14:32:11,819 DEBUG root] Switched writing logs to /Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/app/results/confluence/2020-07-24_14-32-11/bzt.log
[2020-07-24 14:32:11,819 DEBUG root] Linting config
[2020-07-24 14:32:11,823 INFO Engine] Preparing...
........................

If you need to see how the prepare, execute and post run stages went, you should have a look at this file.

confluence.yml

This file is a copy of confluence.yml which you used to run the test with bzt confluence.yml command. It is very convenient to have this file to check which parameters were used for the test.

effective.json/effective.yml

These two files are copies of confluence.yml file in yml and json formats

error.jtl

You can use this file for debugging Jmeter scripts. You can find information on how to do it in the docs/confluence/README.md file.

jmeter.err

Jmeter error log. In my case this file is empty.

jmeter.log

Jmeter log file which contains all log messages sent by Jmeter during test execution:

2020-07-24 15:10:00,962 INFO o.a.j.u.JMeterUtils: Setting Locale to en_RU
2020-07-24 15:10:00,978 INFO o.a.j.JMeter: Loading user properties from: /Users/alexm/.bzt/jmeter-taurus/5.2.1/bin/user.properties
2020-07-24 15:10:00,979 INFO o.a.j.JMeter: Loading system properties from: /Users/alexm/.bzt/jmeter-taurus/5.2.1/bin/system.properties
2020-07-24 15:10:00,979 INFO o.a.j.JMeter: Loading additional properties from: /Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/app/results/confluence/2020-07-24_15-07-19/jmeter-bzt.properties
2020-07-24 15:10:00,979 INFO o.a.j.JMeter: Setting System properties from file: /Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/app/results/confluence/2020-07-24_15-07-19/system.properties
2020-07-24 15:10:00,980 INFO o.a.j.JMeter: Copyright (c) 1998-2019 The Apache Software Foundation
2020-07-24 15:10:00,980 INFO o.a.j.JMeter: Version 5.2.1
2020-07-24 15:10:00,980 INFO o.a.j.JMeter: java.version=1.8.0_252
2020-07-24 15:10:00,980 INFO o.a.j.JMeter: java.vm.name=OpenJDK 64-Bit Server VM
2020-07-24 15:10:00,980 INFO o.a.j.JMeter: os.name=Mac OS X
2020-07-24 15:10:00,980 INFO o.a.j.JMeter: os.arch=x86_64
2020-07-24 15:10:00,980 INFO o.a.j.JMeter: os.version=10.15.6
2020-07-24 15:10:00,980 INFO o.a.j.JMeter: file.encoding=UTF-8
2020-07-24 15:10:00,981 INFO o.a.j.JMeter: java.awt.headless=true
2020-07-24 15:10:00,981 INFO o.a.j.JMeter: Max memory     =7635730432
2020-07-24 15:10:00,981 INFO o.a.j.JMeter: Available Processors =8
2020-07-24 15:10:00,984 INFO o.a.j.JMeter: Default Locale=English (Russia)
2020-07-24 15:10:00,984 INFO o.a.j.JMeter: JMeter  Locale=English (Russia)
2020-07-24 15:10:00,984 INFO o.a.j.JMeter: JMeterHome=/Users/alexm/.bzt/jmeter-taurus/5.2.1
2020-07-24 15:10:00,984 INFO o.a.j.JMeter: user.dir  =/Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/app
2020-07-24 15:10:00,984 INFO o.a.j.JMeter: PWD       =/Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/app
2020-07-24 15:10:05,994 INFO o.a.j.JMeter: IP: 192.168.0.33 Name: Alexeys-MacBook-Pro-2.local FullName: 192.168.0.33
2020-07-24 15:10:05,995 INFO o.a.j.JMeter: user.classpath=/Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/app/results/confluence/2020-07-24_15-07-19:/Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/app/jmeter
2020-07-24 15:10:05,995 INFO o.a.j.JMeter: Adding to classpath and loader: /Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/app/results/confluence/2020-07-24_15-07-19
2020-07-24 15:10:05,996 INFO o.a.j.JMeter: Adding to classpath and loader: /Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/app/jmeter
2020-07-24 15:10:06,002 INFO o.a.j.s.FileServer: Default base='/Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/app'
2020-07-24 15:10:06,006 INFO o.a.j.s.FileServer: Set new base='/Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/app/jmeter'
2020-07-24 15:10:06,118 INFO o.a.j.s.SaveService: Testplan (JMX) version: 2.2. Testlog (JTL) version: 2.2
2020-07-24 15:10:06,126 INFO o.a.j.s.SaveService: Using SaveService properties file encoding UTF-8
2020-07-24 15:10:06,130 INFO o.a.j.s.SaveService: Using SaveService properties version 5.0
................

jmeter-bzt.properties

eter.save.saveservice.autoflush=true
jmeter.save.saveservice.connect_time=true
jmeterengine.force.system.exit=true
summariser.name=
application_hostname=my.domain.io
application_protocol=https
application_port=443
application_postfix=/confluence
total_actions_per_hr=200
perc_view_page=54
perc_view_dashboard=6
perc_view_blog=8
perc_search_cql=7
perc_create_blog=3
perc_create_and_edit_page=6
perc_comment_page=5
perc_view_attachment=3
perc_upload_attachment=5
perc_like_page=3
perc_standalone_extension=0
jmeterengine.nongui.port=4445
jmeterengine.nongui.maxport=4445
jmeter.save.saveservice.timestamp_format=ms
sampleresult.default.encoding=UTF-8
user.classpath=/Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/app/results/confluence/2020-07-24_15-07-19:/Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/app/jmeter

This file contains all parameters with which Jmeter ran during test execution.

kpi.jtl

timeStamp,elapsed,label,responseCode,responseMessage,threadName,success,bytes,grpThreads,allThreads,Latency,Hostname,Connect
1595592651980,13982,jmeter_login_and_view_dashboard,200,"Number of samples in transaction : 8, number of failing samples : 0",Confluence 1-1,true,20910,1,1,0,Alexeys-MacBook-Pro-2.local,0
1595592666301,20109,jmeter_view_page,200,"Number of samples in transaction : 13, number of failing samples : 0",Confluence 1-1,true,34575,1,1,0,Alexeys-MacBook-Pro-2.local,0
1595592686489,983,jmeter_view_page_tree,404,,Confluence 1-1,false,32539,1,1,392,Alexeys-MacBook-Pro-2.local,0
1595592738274,16580,jmeter_view_page,200,"Number of samples in transaction : 13, number of failing samples : 0",Confluence 1-1,true,34564,2,2,0,Alexeys-MacBook-Pro-2.local,0
1595592754868,805,jmeter_view_page_tree,404,,Confluence 1-1,false,32539,2,2,411,Alexeys-MacBook-Pro-2.local,0
1595592742430,15346,jmeter_login_and_view_dashboard,200,"Number of samples in transaction : 8, number of failing samples : 0",Confluence 1-2,true,20958,2,2,0,Alexeys-MacBook-Pro-2.local,0
1595592774276,36189,jmeter_view_page,200,"Number of samples in transaction : 13, number of failing samples : 0",Confluence 1-1,true,34581,2,2,0,Alexeys-MacBook-Pro-2.local,0
1595592810477,30908,jmeter_view_page_tree,Non HTTP response code: java.net.SocketTimeoutException,Non HTTP response message: Read timed out,Confluence 1-1,false,2267,2,2,10712,Alexeys-MacBook-Pro-2.local,590
1595592829809,20611,jmeter_view_page,Non HTTP response code: java.net.SocketTimeoutException,,Confluence 1-2,false,2905,2,2,0,Alexeys-MacBook-Pro-2.local,0
1595592841398,20907,jmeter_recently_viewed,Non HTTP response code: java.net.SocketTimeoutException,"Number of samples in transaction : 1, number of failing samples : 1",Confluence 1-1,false,2905,2,2,0,Alexeys-MacBook-Pro-2.local,0
1595592862307,19672,jmeter_search_results,200,"Number of samples in transaction : 2, number of failing samples : 0",Confluence 1-1,true,2091,2,2,0,Alexeys-MacBook-Pro-2.local,0
1595592850434,32843,jmeter_login_and_view_dashboard,Non HTTP response code: java.net.SocketTimeoutException,"Number of samples in transaction : 8, number of failing samples : 3",Confluence 1-3,false,20394,2,2,0,Alexeys-MacBook-Pro-2.local,0
1595592883305,10416,jmeter_login_and_view_dashboard,200,"Number of samples in transaction : 8, number of failing samples : 0",Confluence 1-4,true,20932,2,2,0,Alexeys-MacBook-Pro-2.local,0
1595592882057,15549,jmeter_view_page,200,"Number of samples in transaction : 13, number of failing samples : 0",Confluence 1-1,true,34577,2,2,0,Alexeys-MacBook-Pro-2.local,0
1595592897621,699,jmeter_view_page_tree,404,,Confluence 1-1,false,32539,2,2,306,Alexeys-MacBook-Pro-2.local,0
1595592898329,3847,jmeter_view_dashboard,200,"Number of samples in transaction : 7, number of failing samples : 0",Confluence 1-1,true,19843,2,2,0,Alexeys-MacBook-Pro-2.local,0
1595592902229,16529,jmeter_create_page_editor,404,"Number of samples in transaction : 11, number of failing samples : 1",Confluence 1-1,false,58991,2,2,0,Alexeys-MacBook-Pro-2.local,0
1595592918772,8326,jmeter_create_page,200,"Number of samples in transaction : 17, number of failing samples : 0",Confluence 1-1,true,40246,2,2,0,Alexeys-MacBook-Pro-2.local,0
1595592927111,4573,jmeter_open_editor,404,"Number of samples in transaction : 9, number of failing samples : 1",Confluence 1-1,false,56905,2,2,0,Alexeys-MacBook-Pro-2.local,0
1595592929738,7926,jmeter_view_page,200,"Number of samples in transaction : 13, number of failing samples : 0",Confluence 1-4,true,34561,2,2,0,Alexeys-MacBook-Pro-2.local,0
1595592931695,6455,jmeter_edit_page,200,"Number of samples in transaction : 17, number of failing samples : 0",Confluence 1-1,true,40055,2,2,0,Alexeys-MacBook-Pro-2.local,0
1595592937682,745,jmeter_view_page_tree,404,,Confluence 1-4,false,32539,2,2,339,Alexeys-MacBook-Pro-2.local,0
1595592938438,942,jmeter_comment,200,"Number of samples in transaction : 1, number of failing samples : 0",Confluence 1-4,true,1316,2,2,0,Alexeys-MacBook-Pro-2.local,0
1595592939441,3717,jmeter_upload_attachment,200,"Number of samples in transaction : 1, number of failing samples : 0",Confluence 1-4,true,13991,2,2,0,Alexeys-MacBook-Pro-2.local,0
1595592965749,5643,jmeter_view_page,200,"Number of samples in transaction : 13, number of failing samples : 0",Confluence 1-4,true,34558,2,2,0,Alexeys-MacBook-Pro-2.local,0
1595592971405,674,jmeter_view_page_tree,404,,Confluence 1-4,false,32539,2,2,270,Alexeys-MacBook-Pro-2.local,0
1595592974241,7707,jmeter_view_page,200,"Number of samples in transaction : 13, number of failing samples : 0",Confluence 1-1,true,34558,2,2,0,Alexeys-MacBook-Pro-2.local,0
1595592981957,649,jmeter_view_page_tree,404,,Confluence 1-1,false,32539,2,2,252,Alexeys-MacBook-Pro-2.local,0
1595593010250,5336,jmeter_view_page,200,"Number of samples in transaction : 13, number of failing samples : 0",Confluence 1-1,true,34576,2,2,0,Alexeys-MacBook-Pro-2.local,0
...............................

Jmeter raw data. This file contains information about requests and responses of JMeter during test run. Later this file will be used by this toolkit to create a summary statistic for the test run.

merged.yml/merged.json

Taurus can be run with multiple configuration files and the merged.json/merged.yml files contain merged data from all these configuration files. In our case merged.json/merged.yml will equal to effective.json/effective.yml.

modified_confluence.jmx

This file contains Jmeter project file with all settings and parameters applied. This file is executed for running Jmeter tests.

pytest.err/pytest.out

Raw files of the pytest engine. Pytest engine is used for Selenium tests.

results.csv

Summary of the results for the test run. It contains information about response time for all selenium and jmeter tests:

Label,# Samples,Average,Median,90% Line,95% Line,99% Line,Min,Max,Error %
jmeter_login_and_view_dashboard,4,15996,12216,29332,31667,33536,5548,34003,25.0
jmeter_view_page,18,9950,7290,21767,25701,31178,1041,32547,11.0
jmeter_view_page_tree,16,3422,1001,10405,13115,19515,700,21115,100.0
jmeter_recently_viewed,2,5068,5068,8533,8966,9312,738,9399,0.0
jmeter_search_results,2,21082,21082,36756,38716,40283,1488,40675,50.0
jmeter_view_blog,2,21786,21786,30568,31666,32544,10807,32764,50.0
jmeter_view_dashboard,2,6070,6070,6424,6468,6503,5629,6512,0.0
jmeter_create_page_editor,2,6514,6514,7286,7382,7460,5549,7479,100.0
jmeter_create_page,2,12844,12844,17641,18240,18720,6848,18840,0.0
jmeter_open_editor,2,20412,20412,32523,34037,35248,5272,35551,100.0
jmeter_edit_page,2,45840,45840,76536,80373,83443,7470,84210,50.0
jmeter_comment,2,1176,1176,1293,1307,1319,1029,1322,0.0
jmeter_upload_attachment,2,3639,3639,3922,3958,3986,3285,3993,0.0
jmeter_create_blog_editor,1,7213,7213,7213,7213,7213,7213,7213,100.0
jmeter_create_blog,1,15801,15801,15801,15801,15801,15801,15801,0.0
jmeter_view_attachment,1,1000,1000,1000,1000,1000,1000,1000,0.0
jmeter_like_page,1,2020,2020,2020,2020,2020,2020,2020,0.0
selenium_login:open_login_page,17,1355,538,2404,5970,9466,342,10340,0.0
selenium_login:login_and_view_dashboard,17,1977,1660,2917,3929,7006,1027,7775,0.0
selenium_login,17,3456,2317,5472,10064,16635,1520,18278,0.0
selenium_view_page,17,2310,734,3046,8832,19338,599,21964,0.0
selenium_create_page:open_create_page_editor,17,5715,1623,7635,23837,50605,1341,57297,0.0
selenium_create_page:save_created_page,17,5462,3789,10068,17413,19791,3056,20385,0.0
selenium_create_page,17,12186,6244,23697,33888,66310,5331,74415,0.0
selenium_edit_page:open_create_page_editor,16,4595,3460,8714,13476,14733,2,15047,0.0
selenium_edit_page:save_edited_page,15,3365,2567,4053,6707,10897,1975,11945,0.0
selenium_edit_page,16,8029,6406,15966,16456,17122,2,17288,0.0
selenium_create_comment:write_comment,15,2522,2147,4070,4833,4875,1813,4886,0.0
selenium_create_comment:save_comment,15,1251,1146,1652,1669,1685,1120,1689,0.0
selenium_create_comment,16,4187,3982,6027,6661,7047,2,7143,0.0
selenium_view_blog,16,7152,4360,13916,16767,23327,2,24967,0.0
selenium_view_dashboard,16,5155,3646,5286,12210,27374,1,31165,0.0
selenium_log_out,16,5115,862,1096,18352,59433,1,69703,0.0

results_summary.log

This file contains a short log of the test run:

Summary run status                                FAIL
                                             
Artifacts dir                                     2020-07-24_14-32-11                               
OS                                                macOS                                             
DC Apps Performance Toolkit version               3.0.1                                             
Application                                       confluence 7.4.1                                  
Dataset info                                      975425 pages                                      
Application nodes count                           2                                                 
Concurrency                                       2                                                 
Expected test run duration from yml file          2700 sec                                          
Actual test run duration                          793 sec                                           
Finished                                          (False, 'Actual test duration 793 sec < than expected test_duration 2700 sec.')
Compliant                                         (False, 'Test run duration 793 sec < than minimum test duration 2700 sec. Test run concurrency 2 < than minimum test concurrency 200.')
Success                                           (False, 'One or more actions have success rate < 95.0 %.')

Action                                            Success Rate                                      Status                                            
jmeter_comment                                    100.0                                             OK                                                
jmeter_create_blog                                100.0                                             OK                                                
jmeter_create_blog_editor                         0.0                                               Fail                                              
jmeter_create_page                                100.0                                             OK                                                
jmeter_create_page_editor                         0.0                                               Fail                                              
jmeter_edit_page                                  50.0                                              Fail                                              
jmeter_like_page                                  100.0                                             OK                                                
jmeter_login_and_view_dashboard                   75.0                                              Fail                                              
jmeter_open_editor                                0.0                                               Fail                                              
jmeter_recently_viewed                            100.0                                             OK                                                
jmeter_search_results                             50.0                                              Fail                                              
jmeter_upload_attachment                          100.0                                             OK                                                
jmeter_view_attachment                            100.0                                             OK                                                
jmeter_view_blog                                  50.0                                              Fail                                              
jmeter_view_dashboard                             100.0                                             OK                                                
jmeter_view_page                                  88.89                                             Fail                                              
jmeter_view_page_tree                             0.0                                               Fail                                              
selenium_a_login                                  100.0                                             OK                                                
selenium_create_comment                           93.75                                             Fail                                              
selenium_create_page                              94.12                                             Fail                                              
selenium_edit_page                                93.75                                             Fail                                              
selenium_view_blog                                93.75                                             Fail                                              
selenium_view_dashboard                           87.5                                              Fail                                              
selenium_view_page                                100.0                                             OK                                                
selenium_z_log_out                                93.75                                             Fail                                              

selenium.err

This file contains information about all errors with Selenium webdriver:

Action: test_1_selenium_create_page, Error: webdriver = <selenium.webdriver.chrome.webdriver.WebDriver (session="a14471438bdc54e10792c212a59928c0")>
confluence_datasets = {'blog_id': '52215665', 'blogs': [['52377239', 'TES'], ['52215590', 'TES'], ['52215591', 'TES'], ['52540654', 'TES'], ...'], ['46780039', 'TES'], ['46777426', 'TES'], ['50383897', 'TES'], ['47037799', 'TES'], ['47037475', 'TES'], ...], ...}
confluence_screen_shots = None

    def test_1_selenium_create_page(webdriver, confluence_datasets, confluence_screen_shots):
>       modules.create_confluence_page(webdriver, confluence_datasets)

selenium_ui/confluence_ui.py:15: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
selenium_ui/confluence/modules.py:100: in create_confluence_page
    measure()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

    @functools.wraps(func)
    def wrapper():
        if LOGIN_ACTION_NAME in interaction:
            globals.login_failed = False
        if globals.login_failed:
            pytest.skip(f"login is failed")
        start = time.time()
        error_msg = 'Success'
        full_exception = ''
        try:
            func()
            success = True
        except Exception:
            success = False
            # https://docs.python.org/2/library/sys.html#sys.exc_info
            exc_type, full_exception = sys.exc_info()[:2]
            error_msg = f"Failed measure: {interaction} - {exc_type.__name__}"
        end = time.time()
        timing = str(int((end - start) * 1000))
    
        with open(selenium_results_file, "a+") as jtl_file:
            timestamp = round(time.time() * 1000)
            jtl_file.write(f"{timestamp},{timing},{interaction},,{error_msg},,{success},0,0,0,0,,0\n")
    
        print(f"{timestamp},{timing},{interaction},{error_msg},{success}")
    
        if not success:
            if LOGIN_ACTION_NAME in interaction:
                globals.login_failed = True
>           raise Exception(error_msg, full_exception)
E           Exception: ('Failed measure: selenium_create_page - Exception', Exception('Failed measure: selenium_create_page:save_created_page - TimeoutException', TimeoutException("Error in wait_until: Timed out after 20 sec waiting for <selenium.webdriver.support.expected_conditions.visibility_of_element_located object at 0x10eb8f7f0>. \nLocator: ('id', 'title-text')", None, None)))

selenium_ui/conftest.py:118: Exception

selenium.jtl

This file contains raw information about selenium tests in the test run:

timeStamp,elapsed,label,responseCode,responseMessage,threadName,success,bytes,grpThreads,allThreads,Latency,Hostname,Connect
1595590485432,4877,selenium_login:open_login_page,,Success,,True,0,0,0,0,,0
1595590488565,2967,selenium_login:login_and_view_dashboard,,Success,,True,0,0,0,0,,0
1595590488565,8011,selenium_login,,Success,,True,0,0,0,0,,0
1595590494133,5549,selenium_view_page,,Success,,True,0,0,0,0,,0
1595590509607,15472,selenium_create_page:open_create_page_editor,,Success,,True,0,0,0,0,,0
1595590517792,5666,selenium_create_page:save_created_page,,Success,,True,0,0,0,0,,0
1595590517793,23658,selenium_create_page,,Success,,True,0,0,0,0,,0

After the test run you should have a look at the results.csv and results_summary.log files to understand if the test run was successful or not. If you can see errors in those files then you can investigate the cause of the errors by looking at the Jmeter and Selenium error files.

Reports

Besides the files above you can also generate reports. Those reports are aimed for approving your app for Data Center.

Performance Report

This report will show you how your Jira, Confluence or Bitbucket instance ran with and without your app. First you make a test run with your app installed and then you make a test run without your app. After that you provides links to both of the results in the performance_profile.yml file:

# Defines which column from test runs is used for aggregated report. Default is "90% Line"
column_name: "90% Line"
runs:
  # fullPath should contain a full path to the directory with run results. E.g. /home/$USER/dc-app-performance-toolkit/jira/results/2019-08-06_17-41-08
  - runName: "without app"
    fullPath: "/Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/app/results/confluence/noplugin"
  - runName: "with app"
    fullPath: "/Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/app/results/confluence/4_nodes"

# Chart generation config
index_col: "Action"
title: "DCAPT Performance Testing"
image_height_px: 1000
image_width_px: 1200

Then you run the following command:

python3 csv_chart_generator.py performance_profile.yml

The report contains three files: performance_profile_summary.log, performance_profile.csv, performance_profile.png

performance_profile_summary.log contains summary information about the two test runs:

cenario status: OK
========================================================================================================================
Run name: without app

Summary run status                                OK
                                             
Artifacts dir                                     2020-07-24_13-29-26                               
OS                                                macOS                                             
DC Apps Performance Toolkit version               3.0.1                                             
Application                                       confluence 7.4.1                                  
Dataset info                                      975407 pages                                      
Application nodes count                           4
Concurrency                                       200
Expected test run duration from yml file          2700 sec                                          
Actual test run duration                          2710 sec
Finished                                          (True, 'OK')
Compliant                                         (True, 'OK')
Success                                           (True, 'OK')

Action                                            Success Rate                                      Status                                            
jmeter_comment                                    100.0                                             OK                                                
jmeter_create_blog                                100.0                                             OK                                                
jmeter_create_blog_editor                         100.0                                             OK
jmeter_create_page                                100.0                                             OK                                                
jmeter_create_page_editor                         100.0                                             OK
jmeter_edit_page                                  100.0                                             OK                                                
jmeter_like_page                                  100.0                                             OK                                                
jmeter_login_and_view_dashboard                   100.0                                             OK
jmeter_open_editor                                100.0                                             OK
jmeter_recently_viewed                            100.0                                             OK                                                
jmeter_search_results                             100.0                                             OK
jmeter_upload_attachment                          100.0                                             OK                                                
jmeter_view_attachment                            100.0                                             OK                                                
jmeter_view_blog                                  100.0                                             OK                                                
jmeter_view_dashboard                             100.0                                             OK                                                
jmeter_view_page                                  100.0                                             OK
jmeter_view_page_tree                             100.0                                             OK
selenium_a_login                                  100.0                                             OK                                                
selenium_create_comment                           100.0                                             OK                                                
selenium_create_page                              100.0                                             OK                                                
selenium_edit_page                                100.0                                             OK
selenium_view_blog                                100.0                                             OK                                                
selenium_view_dashboard                           100.0                                             OK                                                
selenium_view_page                                100.0                                             OK                                                
selenium_z_log_out                                100.0                                             OK                                                

========================================================================================================================
Run name: with app

Summary run status                                OK
                                             
Artifacts dir                                     2020-07-24_13-29-26                               
OS                                                macOS                                             
DC Apps Performance Toolkit version               3.0.1                                             
Application                                       confluence 7.4.1                                  
Dataset info                                      975407 pages                                      
Application nodes count                           4
Concurrency                                       200
Expected test run duration from yml file          2700 sec                                          
Actual test run duration                          2710 sec
Finished                                          (True, 'OK')
Compliant                                         (True, 'OK')
Success                                           (True, 'OK')

Action                                            Success Rate                                      Status                                            
jmeter_comment                                    100.0                                             OK                                                
jmeter_create_blog                                100.0                                             OK                                                
jmeter_create_blog_editor                         100.0                                             OK
jmeter_create_page                                100.0                                             OK                                                
jmeter_create_page_editor                         100.0                                             OK
jmeter_edit_page                                  100.0                                             OK                                                
jmeter_like_page                                  100.0                                             OK                                                
jmeter_login_and_view_dashboard                   100.0                                             OK
jmeter_open_editor                                100.0                                             OK
jmeter_recently_viewed                            100.0                                             OK                                                
jmeter_search_results                             100.0                                             OK
jmeter_upload_attachment                          100.0                                             OK                                                
jmeter_view_attachment                            100.0                                             OK                                                
jmeter_view_blog                                  100.0                                             OK                                                
jmeter_view_dashboard                             100.0                                             OK                                                
jmeter_view_page                                  100.0                                             OK
jmeter_view_page_tree                             100.0                                             OK
selenium_a_login                                  100.0                                             OK                                                
selenium_create_comment                           100.0                                             OK                                                
selenium_create_page                              100.0                                             OK                                                
selenium_edit_page                                100.0                                             OK
selenium_view_blog                                100.0                                             OK                                                
selenium_view_dashboard                           100.0                                             OK                                                
selenium_view_page                                100.0                                             OK                                                
selenium_z_log_out                                100.0                                             OK                                                

========================================================================================================================

performance_profile.csv contains summary information about response time for each of the Selenium and Jmeter tests:

Action,without app,with app
jmeter_login_and_view_dashboard,92764,90969
jmeter_view_page,20174,21212
jmeter_view_page_tree,1027,1182
jmeter_recently_viewed,6537,6309
jmeter_search_results,20103,20091
jmeter_view_blog,20552,19301
jmeter_comment,1497,1581
jmeter_upload_attachment,3758,3895
jmeter_create_blog_editor,6201,6335
jmeter_create_blog,12925,11319
jmeter_view_attachment,1394,1281
jmeter_like_page,798,866
jmeter_view_dashboard,4971,4775
jmeter_create_page_editor,8401,8508
jmeter_create_page,8620,8801
jmeter_open_editor,4513,4541
jmeter_edit_page,9528,9225
selenium_login:open_login_page,703,790
selenium_login:login_and_view_dashboard,2115,2057
selenium_login,3007,3132
selenium_view_page,1065,1269
selenium_create_page:open_create_page_editor,9562,9378
selenium_create_page:save_created_page,5603,5202
selenium_create_page,14663,14980
selenium_edit_page:open_create_page_editor,4059,3950
selenium_edit_page:save_edited_page,2965,2870
selenium_edit_page,6393,6959
selenium_create_comment:write_comment,4763,4575
selenium_create_comment:save_comment,1378,1178
selenium_create_comment,6284,6698
selenium_view_blog,9723,9937
selenium_view_dashboard,5365,5007
selenium_log_out,1543,1110

performance_profile.png contains the graph for the two test runs:

Scale Report

This report will show you how your Jira, Confluence or Bitbucket instance ran on 4, 2 and 1 node. Before generating this report you need to run all tests on 4, 2 and 1 node. After that you provide links to the three of the results in the scale_profile.yml file.

# Defines which column from test runs is used for aggregated report. Default is "90% Line"
column_name: "90% Line"
runs:
  # fullPath should contain a full path to the directory with run results. E.g. /home/$USER/dc-app-performance-toolkit/jira/results/2019-08-06_18-41-08
  - runName: "Node 1"
    fullPath: "/Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/app/results/confluence/1_node"
  - runName: "Node 2"
    fullPath: "/Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/app/results/confluence/2_nodes"
  - runName: "Node 4"
    fullPath: "/Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/app/results/confluence/4_nodes"

# Chart generation configs
index_col: "Action"
title: "DCAPT Scale Testing"
image_height_px: 1000
image_width_px: 1200

Again you will have three files: scale_profile_summary.log, scale_profile.cvs and scale_profile.png.

Those reports are supposed to be used for certifying your app for Data Center, but you can use the reports to get summary information about two or three test runs.

That is all for the reports and graphs. I believe, now you have enough information to start using dc-app-performance-toolkit.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: