当前位置: 代码迷 >> Web前端 >> 用SoapUI开展Webservice的性能压力测试
  详细解决方案

用SoapUI开展Webservice的性能压力测试

热度:445   发布时间:2012-06-26 10:04:13.0
用SoapUI进行Webservice的性能压力测试

1.????

选择在一个测试用例中测试多个方法,并为测试生成压力测试:

?

2.????? 为测试 Step 添加变量:

右键选中 Test Step ,添加一个 Grooy Script Step ;添加一个变量 count 并设置初始值为 0

?

3.????? 添加一个随机变量:

右键选中 Test Step ,添加一个 Grooy Script Step ;名称为 rand ,用下面的代码产生一个随机值

?

[java] view plaincopyprint?
  1. Random?rand?=?new?Random()??
  2. result?=?"test_"?+?rand.nextInt(100)???

Random rand = new Random() result = "test_" + rand.nextInt(100)

?

4.????? 使用动态参数:

打开 init 操作的 SOAP 请求,将输入参数用上面步骤产生的随机替换

?

[xhtml] view plaincopyprint?
  1. <soapenv:Envelope?xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"?xmlns:web="http://webservice.test.jastar.com.cn">??
  2. ???<soapenv:Header/>??
  3. ???<soapenv:Body>??
  4. ??????<web:run>??
  5. ?????????<web:in0>${rand#result}</web:in0>??
  6. ??????</web:run>??
  7. ???</soapenv:Body>??
  8. </soapenv:Envelope>???

?

5.????? 按条件选择执行操作:

同样的再添加一个 Grooy Script Step ;名称叫 ExecHandler ,用来条件控制用例的执行

?

[vb] view plaincopyprint?
  1. def?countProps?=?testRunner.testCase.getTestStepByName("count")??
  2. def?index??=?countProps.getPropertyValue("count")??
  3. if?(index?==?"0")?{??
  4. ?????????testRunner.runTestStepByName("init")??
  5. }?else?{??
  6. ?????????testRunner.runTestStepByName("run")??
  7. }??
  8. countProps.setPropertyValue("count",?"1")???

?

6.????? 执行测试:

打开 LoadTest disable init run(ExecHandler 控制 init run 的执行 ) ,设置好参数, OK 可以开始跑了。正如你所预期的 init 方法只执行一次,而 run 将会按照你所设置的方式来执行。

  相关解决方案