需求背景:1.采购登陆,创建订单;2.供应登陆,确认该订单。所以这里就会涉及到1中生成的订单号需要传递到2中。
需求实现:用jmeter进行1,2的自动化;1,2分成了2个不同的线程组,所以这里就需要跨线程组传递订单号。
跨线程组传值:
1.创建订单后先获取生成的订单号:
{"Success":true,"Message":null,"Data":[{"SOSNo":"10009004","Price":19999999.98000,"PayMethod":"线下支付","ShoppingCartMasterNo":10009004,"AduitChoiceStatus":30,"OrderSource":3,"ParentSOSysNo":10009004}],"Code":0}
1的创建订单请求中,加jp@gc - JSON/YAML Path Extractor提取创建订单成功后返回的订单号;--->还是在该请求中,加后置处理器BeanShell PostProcessor;---->
遇到的问题如下:
在2确认订单的时候,一直报错,查看请求,看到订单号并没有正确传递过来,还是参数的形式:
{"SOSysNo":${newsosysno},"OptType":20,"Note":"确认订单"}
打开log(工具栏Options->Log Viewer),查看报错如下:
2019-11-26 16:23:49,150 ERROR o.a.j.u.BeanShellInterpreter: Error invoking bsh method: eval Sourced file: inline evaluation of: ``string sosysno=bsh.args[0]; print(sosysno); ${_setProperty(newsosysno,${sosyno}, . . . '' : Typed variable declaration : Class: string not found in namespace
原因:string写法的问题。应该写String,不是string。。。。修改后,成功了!
来源:https://www.cnblogs.com/hellomaster/p/11937841.html