18

I'm working on stress testing our application in Apache JMeter.

I thought of calling register user method which will add users in the database. But if the email already exists, then the database action does not take place.

How can I add a random number in body data? Or is there some other way I can stress test my application connected with database?

Here are some screenshots : enter image description hereenter image description here

Controller code :

@RequestMapping(value = "/person/add", method = RequestMethod.POST)
public String addPerson(@ModelAttribute("person") Person person, BindingResult bindingResult) {
    System.out.println("Person add called"+person.getUsername());
    person.setUsername(this.stripHTML(person.getUsername()));
    int personId = this.personService.addPerson(person);
    if (!(personId == 0)) {
        Person person1 = this.personService.getPersonById(personId);
        Collection<GrantedAuthority> authorities = new ArrayList<>();
        authorities.add(new SimpleGrantedAuthority("ROLE_USER"));
        Authentication authentication = new UsernamePasswordAuthenticationToken(person1, null, authorities);
        SecurityContextHolder.getContext().setAuthentication(authentication);
        return "redirect:/canvaslisting";
    } else {
        return "redirect:/";
    }
}
Ori Marko
  • 56,308
  • 23
  • 131
  • 233
We are Borg
  • 5,117
  • 17
  • 102
  • 225

3 Answers3

18

Take a look at JMeter Functions like:

  • __Random() - which generates a random number in the given range
  • __RandomString() - which generates a random string from the given input
  • __threadNum() - which returns the current thread number
  • __UUID() - which returns an unique GUID structure
  • __time() - which returns current time stamp in different formats
  • any combination of above

JMeter functions can be used anywhere in the test so you can put them directly into your request body.

Some more recommendations:

Dmitri T
  • 159,985
  • 5
  • 83
  • 133
12
  1. Use Random Variable with variable name emailValue and send ${emailValue} in request

  2. Use JDBC request to your database to create random number or sequence and save in variable name emailValue

  3. Use UUID function to create uniqueId and send in email ${uniqueId}@gmail.com for example

Ori Marko
  • 56,308
  • 23
  • 131
  • 233
11

My example with __UUID

enter image description here

For POST request, make sure you have correct Content-Type in HTTP Header Manger , application/json for example.

vanduc1102
  • 5,769
  • 1
  • 46
  • 43