Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a Jmeter test plan to show the performance testing process #9560

Closed
8 of 10 tasks
amrut-prabhu opened this issue Mar 10, 2019 · 0 comments
Closed
8 of 10 tasks

Add a Jmeter test plan to show the performance testing process #9560

amrut-prabhu opened this issue Mar 10, 2019 · 0 comments
Assignees
Labels
a-Scalability Behaviour at increasing/decreasing loads a-Testing Testing-related traits such as efficiency, robustness, coverage

Comments

@amrut-prabhu
Copy link
Contributor

amrut-prabhu commented Mar 10, 2019

Description of feature/enhancement

  • Add a Jmeter test plan sample that shows the various components involved in the performance test (eg. user authentication, param configs etc.).

Possible improvements to make after #9561 (in order of priority):

  • Fail the test case if an Exception occurs - need to investigate whether this happens already
  • Fail if there is a false value in the results file- fails based on thresholds set
  • Since, we're using TestNG to run tests, ./gradlew lnpTests won't run the tests again, unless you make a change in the code. Investigate whether we should fix this behaviour since it is Performance testing (and not regression testing), and fix it if necessary.
  • Refactor JmeterConfig to a builder class and add a default config.
  • Change LNPTestData methods from abstract to implement the default behaviour return new HashMap<>();
  • Delete result files (data files are already deleted) - need to discuss whether to do so
  • Replace JSON_DATA_PATH and CSV_CONFIG_PATH with getClass().getSimpleName()?
  • Don't write to a JSON file. Create class attribute LNPTestData#dataBundle instead. CSV generation can use this data.
    • If JSON file is still created: Preserve order of root keys in JSON data to match existing test data files. Use LinkedHashMap and convert to JSONObject (see here). One step further, preserve numerical order of dummy test data.
@amrut-prabhu amrut-prabhu self-assigned this Mar 10, 2019
@amrut-prabhu amrut-prabhu added the a-Scalability Behaviour at increasing/decreasing loads label Mar 10, 2019
@amrut-prabhu amrut-prabhu added this to To do in Continuous Profiling via automation Mar 10, 2019
@amrut-prabhu amrut-prabhu added the a-Testing Testing-related traits such as efficiency, robustness, coverage label Mar 10, 2019
@amrut-prabhu amrut-prabhu moved this from To do to Ongoing in Continuous Profiling Mar 10, 2019
amrut-prabhu added a commit that referenced this issue Apr 4, 2019
#9561)

* Add initial test plan

* Add readme

* Use config file for request parameter values

* Add users config file

* Rename TEAMMATES.jmx -> testTemplate.jmx

* Add instructions for running tests

* Update test

* Update output file format

* Fix login user credentials

* Update bash script and gitignore

* Update  gitignore

* Move jmeter directory

* Generate HTML report

* Add Jmeter gradle plugin

* Remove redundant line

* Add properties file for gradle

* Add script for adding test data to datastore

* Update jmeter plugin import

* Change redirect url in test file

* Add Debug Sampler

* Rename and move test file

* Add gradle config for report generation

* Rename and move test file

* Add Java scripts

* Remove unnecessary listeners and disable ResultsTree listener

* Add JMeter report template file

* Add jmeter-gradle-plugin

* Remove unnecessary files

* Add jmeter source sets to gradle

* Add performance testing instructions

* Minor refactoring

* Fix test data to prevent request failures

* Fix macker errors

* Remove unused Jmeter API dependencies

* Fix plugin logging error
Change default report to csv

* Update docs

* Add data creation script

* Add script to delete data

* Update JMeter java runner

* Fix build errors

* Refactor into base classes
Some renaming of variables and data

* Extract path to variable

* Refactor

* Add base for CSV config creator

* Add CSV generator for student profile

* Update CSV Config options in jmx test

* Add script to setup test

* Restructure files

* Minor optimisation

* Minor refactoring

* Update docs with data instructions

* Text and gradle changes

* Rename package performance -> lnp

Remove unnecessary stuff from TestProperties

* Update macker file and remove Backdoor file

* Add base setup class
Update teardown scripts

* Fix test data and properties

* Refactor config data creator

* Update docs

* Update RunPerformanceTest.java

* Update jmeter version

* Simplify L&P package

* Update java docs and rename

* Remove jmeter gradle plugin

* Update docs

* Rename and refactor

Replace json.simple instances

* Use DataBundle instead of JSONObject to construct LNP test data

* Update docs and Remove outdated static analysis configs

* Move lnp tests from src/jmeter/ to src/test/

* Refactor + Delete data files

* Change static methods to non-static

* Minor updates and fixes

* Remove debug sampler from jmx

* Move L&P tests to e2e package

* Remove e2e scalability package and related changes

* Remove existing files before writing

Add once only controller for login

* Add jmeter test in Java

* Update docs + minor code changes

* Hardcode test properties

* Remove unnecessary toString

* Move jmeter properties file to jmeter folder

* Make getTestData abstract

* Improve abstraction for JMeter config setup

* Minor rename refactoring + Update docs

* Fix typo
amrut-prabhu added a commit that referenced this issue Apr 21, 2019
* Change LNPTestData data bundle methods to concrete methods

* Use class name for data files instead of custom names

* Match test data in files to order of creation

* Re-run L&P tests at each execution

* Minor rename refactoring

* Display L&P results in TestNG build output

* Minor changes

* Merge branch 'master' into lnp-misc

* Refactor JMeter config into separate elements
Create test plans for endpoints
Clean up
Add javadocs

ee4cd89ab7
d394bd4715
caf73b841e
ce6199504c

* Add Javadoc

* Changes based on  review

* Parameterise ramp up period
rrtheonlyone pushed a commit to rrtheonlyone/teammates that referenced this issue Apr 21, 2019
* Change LNPTestData data bundle methods to concrete methods

* Use class name for data files instead of custom names

* Match test data in files to order of creation

* Re-run L&P tests at each execution

* Minor rename refactoring

* Display L&P results in TestNG build output

* Minor changes

* Merge branch 'master' into lnp-misc

* Refactor JMeter config into separate elements
Create test plans for endpoints
Clean up
Add javadocs

ee4cd89ab7
d394bd4715
caf73b841e
ce6199504c

* Add Javadoc

* Changes based on  review

* Parameterise ramp up period
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a-Scalability Behaviour at increasing/decreasing loads a-Testing Testing-related traits such as efficiency, robustness, coverage
Projects
No open projects
Development

No branches or pull requests

2 participants