need to automate an form with 1000 users in single time - automation

this is link to the form, already used jmeter to do this but in backend only one user was reflecting https://testapp-app.kloudsoft.co/survey/38e288e2-7957-4a05-b024-fb337df2f0f6
I am expecting 1000 differnt users in the back end
backend
Need a tool from which i can do this form automation

If you recorded your test using HTTP(S) Test Script Recorder it's absolutely expected that you're able to see only one user (the name and/or email which was used during recording)
You need to parameterize the credentials using one of the following approaches:
Generate 1000 users/emails, put them into a CSV file and use CSV Data Set Config to read them
Use JMeter Functions like __RandomString() to generate random users
Use Counter configuration element and/or __counter() function to generate an incremented number on each iteration or each time the function is called

Related

How to performance test an Update endpoint in JMeter while automatically updating row value in payload

I have an Update entity endpoint in my .NET Core Microservice API that needs to be tested for performance. For all other endpoints, I am able to store the ID in a CSV file and load it before processing, however I want to reuse the values in the CSV for update, which requires updating and keeping track of the Row Version attribute for the ID.
I will be testing using 100 Users and 100 Orders, so I will need to match every user to one order so they don't try updating the same entity.
Steps:
Read CSV with ID and current row version
Call Update endpoint on the ID and row version, read in new Row Version from response body
Store the new row version and the ID within JMeter to reuse in the test
Call Update endpoint on the ID and new row version
The problem with storing inside of the CSV is JMeter will be reading and writing from the same file. I am looking for a way to use a Java like collection inside of my script to not have to read and write from a file.
The dictionary would look like {'q28937-3423572903485-324875', rowVersion: 42}
Add a Post Processor as a child of your HTTP request (the first update) to extract the new ID and rowVersion.
Then in the next update, you should use Jmeter variables ${ID} and ${rowVersion} which holds the new values that you extracted using Post Processor.
Note that variables are not shared between threads, from Jmeter user manual best practices - 16.13
Variables are local to a thread; a variable set in one thread cannot be read in another. This is by design.
Also check
Using RegEx (Regular Expression Extractor) with JMeter guide.
Using CSV DATA SET CONFIG guide.
CSV data set config Jmeter User Manual

How to merge sqlite3 session extension sessions?

I'm using the c API of the sqlite3 session extension and wondering if the session extension can be used to merge sqlite3 sessions that already have been written to file.
Following the tutorial referenced above I was able to register sqlite3 sessions by writing them to file one by one, e.g. for an UPDATE call I end up with a session file, and with another INSERT call I get another file, and so on. These transactions are triggered by UI button callbacks. I wonder if the session files could be somehow merged afterwards into one single session file, so that calling sqlite3changeset_apply() with this merged session file as its parameter I could end up with the same result as if I called sqlite3changeset_apply() on a list of session files. The reason I would like to do this is that I'd like to transfer only one session file instead of a folder of session files.
I tried iterating over a session list calling subsequent sqlite3changeset_apply() on a copy of the original database while registering the session, but in that I case I eventually get a session file with zero size (although the copy database would contain all the expected changes).
I could not find anything on this in the official documentation nor on the web.
🧟‍♀️🧟🧟‍♂️ necromancy alert 🧟‍♂️🧟🧟‍♀️
You're probably looking for the sqlite3changeset_concat function:
This function is used to concatenate two changesets, A and B, into a single changeset. The result is a changeset equivalent to applying changeset A followed by changeset B.
There is also a streaming version, sqlite3changeset_concat_strm.
If you need to combine many changesets, you can use the type sqlite3_changegroup and its associated functions.

CSV data set config just working for 1 line

I have recorded a script, in that script only a search id is changed after login and search a field
After recording i modified the script and i have provided a "CSV_Data Set COnfig" file to read a list of search ids.
The issue is
If i provide only one search id in that csv that is run correctly, but if i add multiple search ids in that file and run the script that number of time, only the first line run for that X number of times, but in Jmeter it shows that the URL of the search id was made correctly.
Can someone guide?
I have used loop controller too to run X number of times for that search ids, but same is the result.
How can i run that? (As i recorded the script 1 time and just modified that search id with csv)
The script is working fine for 1 search id, but not for multiple (after providing the search ids through csv file through csv data set config)
What i am doing wrong? please guide
It looks like you have the csv and the loop controller at the same level.
You should put the csv data set configuration as a child of loop controller
*--thread Group
*----loopcontroler
*------csv
*------httpsampler

Iterating through folder - handling files that don't fit schema

I have a directory containing multiple xlsx files and what I want to do is to insert the data from the files in to a database.
So far I have solved this by using tFileList -> tFileInputExcel -> tPostgresOutput
My problem begins when one of this files doesn't match the defined schema and returns an error resulting on a interruption of a workflow.
What I need to figure out is if it's possible skip that file (moving it to another folder for instance) and continuing iterating the rest of existing files.
If I check the option "Die on error" the process ends and doesn't process the rest of the files.
I would approach this by making your initial input schema on the tFileInputExcel be all strings.
After reading the file I would then validate the schema using a tSchemaComplianceCheck set to "Use another schema for compliance check".
You should be able to then connect a reject link from the tSchemaComplianceCheck to a tFileCopy configured to move the file to a new directory (if you want it to move it then just tick "Remove source file").
Here's a quick example:
With the following set as the other schema for the compliance check (notice how it now checks that id and age are Integers):
And then to move the file:
Your main flow from the tSchemaComplianceCheck can carry on using just strings if you are inserting into a database. You might want to use a tConvertType to change things back to the correct data types after this if you are doing any processing that requires proper data types or you are using your tPostgresOutput component to create the table as well.

Save JMeter summary table data without plugin?

Is there any way whatsoever that I can save the summary table data from my JMeter tests each time they are run without using the command line or a plugin of any sorts? You can output the default values in a csv which I am already doing so surely there must be a way to do the same with the average, min, max and so on.
You can configure filename, where are you going to save result right here - in Summary Report. Find field: Write result to file/Read from file.
In case you are going to run JMeter in non-gui mode, you could configure format in which the testing results will be saved. You can chose xml or csv. Use jmeter.save.saveservice.output_format config in jmeter.properties.
Yes. Add a Simple Data Writer (Test Plan > Add > Listeners > Simple Data Writer) and then give it the path that you want to save to. You can configure the result data that you want to keep. You can then load this file back into any of the reports, results trees, etc. and see the full test results again.