Apache JMeter : Add random data in body for request

孤者浪人 提交于 2019-12-12 09:46:45

问题


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 :

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:/";
    }
}

回答1:


  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




回答2:


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:

  • Don't use JMeter GUI for running the load test, GUI mode is designed for tests development and debugging only, the tests themselves need to be run in command-line non-GUI mode
  • Remove all the listeners from the test plan while running your load test as JMeter listeners are very resource intensive and create unnecessary overhead.



回答3:


My example with __UUID

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



来源:https://stackoverflow.com/questions/44800557/apache-jmeter-add-random-data-in-body-for-request

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!