0
votes

As per my previous 2 threads - I'm new to Jmeter and need to performance test a new web app - I am making progress, but I need a couple of pointers if that's ok.

My Environment: JMeter v2.11, JDK 7, Remote Oracle 12 RDBMS

There is a system (A) that will send 2000 SOAP/XML submissions (per hour) into a receiving system (B). System B will insert a new row to the database table (for each new submission), process the requests and populate a status column with a random numeric value once the processing is complete/submissions are 'approved'. There is no date/timestamp column in the table.

I have a requirement that states these A to B submissions need to be 'approved' within 60 seconds.

I found another thread couple of threads that were very helpful and I've taken bits and pieces of these other threads to come up with the following:

  • THREAD GROUP --> Threads Count:1, Loop Count: 2000, Duration:3600
  • JDBC CONNECTION CONFIGURATION
  • JDBC PREPROCESSOR --> select max(recordid)+1 from table; 'Variable Name' as 'maxrecordidvar' (to identify the next submission's record in database)
  • BEANSHELL SAMPLERS --> To generate XML submission
  • WHILE Controller --> ( ${__javaScript("${status_1}" != null)} )
  • JDBC SAMPLER --> select status from table where recordid = maxrecordidvar; 'Variable Name' as 'status'

I'm hoping the above will be able allow me to be able to determine the response times, however, I'm a little lost on how to verify the response times. I submitted a previous thread here for response times, but Dmitri T (thanks Dmitri!) pointed out that for that scenario what I was actually was throughput not response times.
I understand a while controller will execute until found to be false (so for my example above, it will run until the status column is not null), but if the above thread objects in my example hierarchy are correct I don't know how to assert the response times - what listeners would I use? I can see a Response Times graph and I can see a Duration Assertion which specifies a time limit for the assertion - but I don't know how to map this to when the status column for the particular row becomes populated and how I can use the time the row is inserted for a start time to compare the two.

Essentially - I need to prove all responses are handled within 60 seconds for each XML submission.

I hope I've been clear and concise with my request - many thanks to anyone that can help!

2

2 Answers

0
votes

If you add the listener View Results in Table you should also be ablet to see the response time per request.

JDBC Results In Table

Here is a copy of the JMX file I used to run the test.

1
votes

JMeter provides Assertions which are capable of marking results as passed or failed conditionally based on pass or fail criteria.

In order to ensure that response comes in 60 seconds you can add a Duration Assertion to your JDBC Sampler (as a child or same level) so the assertion could fail sample result if response time exceeds threshold of 60 seconds.

To learn more about Assertions: types, tips, tricks, where to place them, etc. check out How to Use JMeter Assertions in 3 Easy Steps guide.