需求:
使用jmeter实现所有接口的输入参数为string的,输入特殊字符,验证特殊字符在接口是否已被拦截
拦截为,输出403
非拦截,输出200
设计实现:
1、在已有的jmeter线程组中增加特殊字符拦截验证用例
2、每个接口均需要重复读取csv文件
使用——CSVRead()实现
1、在函数助手中,该函数的实现
2、由于该函数的只适用于多线程组,若在同一个线程组中,循环读取,只能读取第一行,第一行!!!
故若你的文件为以下方式的,就只能读取到#
3、但是我的用例设计为一个接口一个线程组,该接口所有的正向逆向用例均在该线程组中;故需要重新设计;
文件设计为以下方式,参数设置为读取多列数据,列数可以用count这个函数实现自增,由于count自增从1开始,需要用intsum函数-1:${__CSVRead(${unBlock_special_path},${__intSum(${__counter(TRUE,)},-1,)})}
4、使用以上函数,可以实现在一个线程组中用csvRead函数实现循环读取,以英文逗号为分割符
5、但是若需要验证英文逗号这个特殊字符是否存在拦截怎么办?
6、该特殊字符只能是在英文下的特殊字符,即ASCII中的半角时识别,若输入存在全角的特殊字符,参数化会失败,那么如果需要全角验证呢,应该怎么办?
全角和半角的区别:
在非汉字模式下,输入的特殊字符和字母默认为半角,可以输入法中切换
在汉字模式下,输入特殊字符和字母默认为全角,可以输入法中切换
7、若该参数中存在中文,参数化时,显示乱码,那么想要 验证中文,就不能实现了?
总结:
该方法可以在线程组中只读取第一行
该方法可以通过读取行来实现在单线程组中循环读取
该方法只能实现半角的特殊字符和字母。无法实现英文逗号,全角字符,中文