我有一个文本文件score.txt,我知道数据是键值对形式的,但是不知道内容是什么。 请写一个程序判断是否有"lisi"这样的键存在,如果有就改变其实为"100" score.txt文件内容如下:

//创建Properties对象
 Properties p= new Properties();
        //加载
        p.load(new FileInputStream("info.txt"));

        Set<String> strings = p.stringPropertyNames();

        for (String string : strings) {

            if(string.equals("lisi")){
                p.setProperty(string,"100");
            }

        }

        p.store(new FileWriter("info.txt"),"haha");
        //FileOutinputStream也可以
完整阅读完我的发言后再回答,我的发言中已经给你了需要的求体数据数据的处理逻辑和需要你改的脚本,现在我有一段消息体数据:{"isendLevel":"1","unitId":"2ce25663d6614d4fb010f913ec1a25f4","levelName":"压测专用单词跟读","jsonobject":"[{\"learn_time\":\"3\",\"fluency\":\"0\",\"xmlPath\":\"2000000026000000001\\\/abf0c489bd17448ea28d81d780dfb897\\\/ee1ef4ca2a1844f88716675320e7bcd0\\\/t1\\\/2f803dff2a9c41b9839972655b9dfa42\\\/1756109482\\\/0_0.xml\",\"ansDetail\":\"hello.#76\",\"recordPath\":\"2000000026000000001\\\/abf0c489bd17448ea28d81d780dfb897\\\/ee1ef4ca2a1844f88716675320e7bcd0\\\/t1\\\/2f803dff2a9c41b9839972655b9dfa42\\\/1756109482\\\/0_0.mp3\",\"mp3FilePath\":\"\\\/var\\\/mobile\\\/Containers\\\/Data\\\/Application\\\/6B97B168-E06D-432F-9242-62033F423337\\\/Documents\\\/0_0.mp3\",\"xmlFilePath\":\"\\\/var\\\/mobile\\\/Containers\\\/Data\\\/Application\\\/6B97B168-E06D-432F-9242-62033F423337\\\/Documents\\\/0_0.xml\",\"questionId\":\"ee1ef4ca2a1844f88716675320e7bcd0#0#0\",\"accuracy\":\"0\",\"complete\":\"0\",\"score\":\"76\",\"semantic\":\"0\"}]","schoolId":"2000000026000000001","type":"1","levelId":"28444e91e51f4031b3282c2d5ef7f46a","taskId":"2f803dff2a9c41b9839972655b9dfa42","oldQuestionId":"ee1ef4ca2a1844f88716675320e7bcd0","classId":"2811000226001564227,2811000226001564228,2811000226001564229,2811000226001564230,","studentId":"abf0c489bd17448ea28d81d780dfb897","rolename":"STU"} 我现在在用jmeter调试一个包含的接口,现在需要你帮我改一段脚本,参考提问中的消息体数据,在脚本中加入接口包含的处理,需要考虑非GZIP的情况,并删除原脚本处理非Gzip的部分,处理逻辑是: //如果地址包含操作的地址 if(iscontains(request,GZIP CHECK URL)){ //从操作的地址中获取所有的参数集合 //Map<String, object>pMap = GzipRequestWrapper.gzip(request); String params = GZipDecodeUtil.decodeGZipTostring(request); if(paramsnull) {return null; } Map<String, object>pMapJSON parseobiect(params,Map.class); if(pMap = null){ return null; } request,setAttribute(s:"submitchallengeRec"",params); //获取参数集合key的set集合 Set<String>keySet = pMap.keySet(); //循环set集合得到每一个key值 for(object key :keySet.toArray()){ String parakey = key.tostring(); String paraValue = null; //将所有的request中map集合中的value值转化为String类型 paraValue=((string)pMap.get(parakey)); //将转化好的key,value值放到结合中 map.put(parakey, paraValue); 转成map排序后,再按照脚本原有逻辑 用排序参数+mykey+token+uuid通过md5生成sign,并存储到对应的变量中 需要修改的脚本内容是: // 导入必要的 Java 类 var URL = Java.type('java.net.URL'); var URLDecoder = Java.type('java.net.URLDecoder'); var MessageDigest = Java.type('java.security.MessageDigest'); var UUID = Java.type('java.util.UUID'); // 生成签名的函数 function generateSign(params, uuid, tokenstu) { var myKey = 'fifedu@2014-9999!@#'; // 提取参数值并处理列表类型 var values = []; for (var key in params) { var value = params[key]; if (value instanceof java.util.List) { // 处理列表值:取第一个非空元素 for (var i = 0; i < value.size(); i++) { if (value.get(i) !== null && value.get(i).toString().trim() !== '') { values.push(value.get(i).toString()); break; } } } else if (value !== null && value.toString().trim() !== '') { // 处理普通值 values.push(value.toString()); } } // 排序并连接值 values.sort(); var text = values.join('') + myKey + tokenstu + uuid; vars.put('text_stu9', text); // 生成 MD5 签名 var md = MessageDigest.getInstance('MD5'); var digest = md.digest(new java.lang.String(text).getBytes('UTF-8')); // 将字节数组转换为十六进制字符串 var hexString = ''; for (var i = 0; i < digest.length; i++) { var hex = (digest[i] & 0xFF).toString(16); if (hex.length === 1) { hex = '0' + hex; } hexString += hex; } return hexString; } // 1. 生成随机 UUID var generatedUuid = UUID.randomUUID().toString(); vars.put('uuid', generatedUuid); // 获取当前采样器的 URL 和查询参数 var samplerUrl = sampler.getUrl().toString(); var url = new URL(samplerUrl); var query = url.getQuery(); // 解析查询参数 var params = {}; if (query !== null) { var queryPairs = query.split('&'); for (var i = 0; i < queryPairs.length; i++) { var pair = queryPairs[i].split('=', 2); var name = URLDecoder.decode(pair[0], 'UTF-8'); var value = pair.length > 1 ? URLDecoder.decode(pair[1], 'UTF-8') : ''; params[name] = value; } } // 生成签名并存储变量 var tokenstu = vars.get('tokenstu') || ''; vars.put('signstu9', generateSign(params, generatedUuid, tokenstu)); vars.put('uuid_stu9', generatedUuid); vars.put('token_stu9', tokenstu); vars.put('params_stu9', JSON.stringify(params)); // 使用 JSON 代替 inspect()
08-26
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值