使用jmeter中_javaScript函数和__substring函数嵌套截取字符串变量做传参

ThinkingLink 2019-11-01

一、说明:

        一哥们的业务场景是这样的,对一款商品进行下单后,会生成一个订单号,进行支付时,只需要订单号的后8位随机码,这个时候就要对传入的动态订单号进行字符串截取,这样才能支付成功,假如只测          试一次可以手动获取,但需要执行多次就需要动态获取。

二、实现步骤

   1、首先就是需要沟通,彻底明白业务场景,这样才有利于接口测试工作展开,不然云里雾里的乱整没什么实际意义。

    2、根据提供的脚本和梳理的业务场景,并结合目前遇到的瓶颈:A接口生成一个订单号【每次下单都是动态订单号】,B接口进行支付时,只需要传入A接口订单号的后8位随机码;就是说B接口请求时要拿到A接口后8位随机码作为传参,生成49位订单号且订单号后8位和A接口订单号后8位一致。

    2.1、下图为:生成的订单号,需要使用正则表达式对订单号进行提取,给下个请求引用。

使用jmeter中_javaScript函数和__substring函数嵌套截取字符串变量做传参

 2.2、下图为使用正则表达式提取订单号

 使用jmeter中_javaScript函数和__substring函数嵌套截取字符串变量做传参

3、开始对动态订单号进行截取,需要用到

    __javaScript:javaScript函数执行一段JavaScript(不是Java!)代码并返回其值【来自官网翻译】

    __substring:取字符串中的字串。

     下图中的表达式可以理解为:使用__substring函数对传入的动态订单号进行截取,括号中从第36个字符开始,到第44个字符结束,成功后__javaScript函数进行返回截取的数据作为传参;${tradeNo}为变量引用【订单号】,参照2.2步骤。

 使用jmeter中_javaScript函数和__substring函数嵌套截取字符串变量做传参

4、下图为成功后的结果。

 使用jmeter中_javaScript函数和__substring函数嵌套截取字符串变量做传参

相关推荐