jmeter-JSR223组件实践

项目测试需要对比处理后的数据是否正确,思考利用jmeter的JSR223组件来自动实现

思路:

1、首先通过JDBC请求查询到原始数据sourceData和目标数据targetData

2、利用JSR223组件,对sourceData进行相应的处理,并结合处理后的数据特征、sourceData、targetData进行判断,代码如下:

代码示例1:

import org.apache.jmeter.samplers.SampleResult

sourceData = '${sourceDataName_1}'.decode('utf-8')
targetData = '${targetDataName_1}'.decode('utf-8')

maskingData = '*' + sourceData[1:-1] + sourceData[-1]
#vars.put("maskingData",maskingData)

if maskingData == targetData:
    SampleResult.setSuccessful(True)
else:
    SampleResult.setSuccessful(False)

代码示例2:

import org.apache.jmeter.samplers.SampleResult
import re

sourceData = '${sourceDataName_1}'.decode('utf-8')
#vars.put("sourceData",sourceData)
targetData = '${targetDataName_1}'.decode('utf-8')
#vars.put("targetData",targetData)

nameRegex = ur'''[\u4e00-\u9fa5]{%s}''' % len(sourceData)
#vars.put("nameRegex",nameRegex)
res = re.match(nameRegex,sourceData)
#vars.put("res",res)


if (sourceData != targetData or len(targetData) != 0 or len(targetData.encode('utf-8')) == len(sourceData.encode('utf-8')) and res != None):
    SampleResult.setSuccessful(True)
else:
    SampleResult.setSuccessful(False)

SampleResult简单使用

用法:SampleResult帮助获取/设置运行后样本的值,例如:ResponseCode、ResponseMessage、StartTime、SampleLabel等。

注意:如果脚本中直接使用SampleResult类型,需要先导入 org.apache.jmeter.samplers.SampleResult类。

方法:主要包括get和put方法:

SampleResult.getSampleLabel();

SampleResult.getStartTime();

SampleResult.getResponseCode()

SampleResult.getResponseMessage()

SampleResult.getPreviousResult() ·返回值:SampleResult,即取样器结果.作用:获取前一个取样器的结果

SampleResult.setResponseData("{}".format(data)) -----设置返回数据,必须是“xxx”,所以可以用"{}".format(数据)进行传输

SampleResult.setResponseCode("200") -----设置http状态码,比较常用

SampleResult.setSuccessful(True/False) -----设置请求成功或者失败,比较常用

注意事项:

JSR223中只能用python2,且不能指定编码,脚本中涉及到处理中文会存在乱码,例如代码示例2中就遇到了中文乱码,可以通过u'XXX'或'XXX'.decode('utf-8'解决,另外re.match匹配结果始终为None,但是相同的代码在pycharm就不是None,所以考虑编码问题,在nameRegex赋值时指定编码,加“ur”

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值