JMeter中CSV数据集配置无法传递16位卡号,cardNo显示为null
问题:CSV数据集无法传入16位卡号到REST API请求?
你在测试REST API时碰到了一个头疼的问题:明明CSV数据里填好了16位卡号,可发送请求时cardNo字段却显示null。先看看你提供的关键信息:
你的CSV文件内容:
cardno,scode,tNo,txnNo,txn_Date,Amount 1061557318991070,1234,30,40001,15-05-2018,200.60
实际发送的POST请求数据:
{ "cardNo": "null", "mobileNo":null, "sCode": 1234, "tNo": "30", "MemoNo": 40001, "MemoDate": "15-05-2018", "Amount":"200.60" }
咱们一步步排查,大概率是这几个原因导致的:
1. 变量名大小写不匹配(最常见的坑)
JMeter对变量名称是大小写敏感的!你CSV里的列名是cardno(全小写),但请求里写的是cardNo(驼峰式),这俩在JMeter眼里是完全不同的变量。而且你现在请求里的"cardNo": "null"其实是硬编码了字符串"null",根本没引用CSV里的变量值。
解决方案:
把请求里的"cardNo": "null"改成"cardNo": "${cardno}",和CSV列名保持一致;或者把CSV的表头改成cardNo,确保变量名完全匹配。
2. CSV文件格式有问题
从你提供的原始内容看,表头和数据行可能没正确换行?如果表头和数据挤在一行,JMeter会把整行当成表头,自然读不到卡号数据。
解决方案:
用纯文本编辑器(比如Notepad++)打开CSV,确保表头和数据是分开的两行,分隔符都是英文逗号,没有多余的空格或特殊字符,格式就像上面整理的那样。
3. CSV数据集配置的参数没设对
再检查一下JMeter里的CSV数据集配置:
- 变量名称:要准确填写CSV的表头,比如
cardno,scode,tNo,txnNo,txn_Date,Amount,顺序要和CSV列完全一致 - 忽略首行(标题):一定要勾选这个选项,不然JMeter会把表头行当成数据读取,自然取不到正确的卡号
- 文件编码:尽量用UTF-8编码,避免因为编码问题导致数据读取失败
按照这几点调整后,再跑一次测试,应该就能正常读取到16位卡号了。
内容的提问来源于stack exchange,提问作者Rajesh Om
相关产品推荐
相关产品推荐

