Loadrunner乱码一击必杀

  之前有介绍一些简单的针对Loadrunner脚本或者调试输出内容中乱码的一些设置,但是并没能完全解决一些小伙伴的问题,因为那些设置实在能力有限,还是有很多做不到的事情。但是没关系,知道君还有更厉害的招数分享给大家,简单实在,堪称必杀技,请各路高手前来挑战。

  首先我们来看看有哪些内容是配置无法解决的,这里通过对3个Loadrunner使用率最高的HTTP请求函数来解释(web_url,web_submit_data,web_custom_request),其他一些关联、检查等函数大部分都是直接可以通过配置来解决的。

  • web_url

  关键参数: URL(配置无效)

  当然谁在URL里写中文本身就是一个问题,不同浏览器处理中文的处理和编码都不同,但总有人喜欢那么干……任何关于编码的配置都对URL中的中文无效,一切都会以系统默认编码处理,也就是ANSI(GBK)

  • web_submit_data

  关键参数1:Action(配置无效)

  该参数实际就是URL,只是参数名称不同于常规

  关键参数2:ITEMDATA中的各项value(配置有效)

  • web_custom_request

  关键参数1:URL(配置无效)

  与上面URL参数情况相同,配置对中文无效,都只会作为GBK处理

  关键参数2:Body(含其他模式的Body,配置同样无效)

  • 参数化文件的编码(配置无效)

  看了以上的情况后,发现配置实际对很多情况并没有作用,那么我们就开始出招了,招招导致“乱码兄”小命不保。

  常规通用招数

  利用Loadrunner提供的转换函数

  (lr_convert_string_encoding)进行处理,GBK转换UTF-8参考代码:

  lr_convert_string_encoding("我是代码",

  "GBK",

  "UTF-8",

  "outparam");

  由于转换过程中会多出一个 \0 的结束字符,也就是outparam转换后变成了”我是代码\0”,所以还需要特别进行处理:

  lr_save_string(lr_eval_string("{outparam}"),"newparam");

  将outparam重新save转存到另一个newparam的参数中,当然也可以保存在原来的outparam参数中进行覆盖,这样才能保证整个转换过程没有纰漏,一些系统对\0比较敏感的时候还可能出现未知的问题。

  针对参数文件的转换

  LoadRunner对于参数化文件,都是统一使用系统默认编码(GBK)到操作,如果内容中含有中文,就需要每次获取时进行代码转换,这对于一些参数化策略多少会受到一些影响,但如果说使用这招,就可以避免这类的问题,那到底是什么招数呢?

  假设你的数据文件名称为data.dat,你可以在LoadRunner没有打开参数文件窗口的情况下,使用文本编辑器,打开data.dat,直接将数据文件另存为UTF-8的编码对原来的文件进行覆盖,再回去看下参数文件窗口,虽然显示上都成乱码,但实际使用时的效果惊人,可直接发送UTF-8编码的中文数据,简单方便,唯一的缺点是只能在脚本外部进行编辑。

  直接发送16进制编码数据,无视任何编码

  假设需要在web_custom_request的body中发送一串json,内容为{"test":123,"name":"名称"} ,json的格式中,中文只能是UTF-8,而如果不是UTF-8编码,情况好点只是乱码,情况差点,可能连带json解析器都会一起报错。

  那么上面的内容我们可以发送什么来代替呢?揭晓答案:

  {"test":123,"name":"\xE5\x90\x8D\xE7\xA7\xB0"}

  至于中间如何转换的过程,可以参考编码码表,或者通过UTF-8编码获取中文的Hex值,再或者,你会发现实际上这和Urlencode的结果很像。

  

Ending

通过那么多的招数,如果你还是搞不定乱码,那么只有2种情况了:

1. 人家不是编码错误导致的乱码,本身就是一种加密数据,只是你误会了

2. 请找知道君来探讨一下你的处理方式是否正确

云知道

专业知识分享平台

你的问题就是我们的动力。

可以在云知道专题里直接回复哦,如被选中,将会是下一期的知道君大显身手的内容,多次被选中者还将获得云层天咨提供的礼品一份,记得长按下方二维码多关注哦~

全栈测试聚集地

测试学习 | 测试交流 | 测试招聘

 

【云知道】究极秒杀Loadrunner乱码的更多相关文章

  1. 究极秒杀Loadrunner乱码

    Loadrunner乱码一击必杀 之前有介绍一些简单的针对Loadrunner脚本或者调试输出内容中乱码的一些设置,但是并没能完全解决一些小伙伴的问题,因为那些设置实在能力有限,还是有很多做不到的事情 ...

  2. 【mp3】洗脑循环了!龙珠超 自在极意功 【究极の圣戦】串田アキラ 背景纯音乐

    自在极意功情况下发动自带bgm 曲名:究极の圣戦 首先是视频: http://dwz.cn/6Tj2Lq 然后是mp3:度盘下载>> 老外翻唱: 个人翻唱:全民k歌>>

  3. Android的WebView控件载入网页显示速度慢的究极解决方案

    Android的WebView控件载入网页显示速度慢的究极解决方案 [转载来源自http://hi.baidu.com/goldchocobo/] 秒(甚至更多)时间才会显示出来.研究了很久,搜遍了国 ...

  4. 解决SSM框架中,存储到mysql数据库中乱码问题的究极方案

    因为编码格式不匹配的问题,设置了好多遍,都不行,就试着让所有的编码格式保持一致.然后读取.插入数据库再也不乱码了. 数据库编码格式必须和myeclipse编码格式一致 其次依次让以下各文件的编码格式保 ...

  5. Loadrunner乱码问题解决方案(录制&&运行)

    在使用Loadrunner录制和回放时有时会出现乱码,从而导致脚本运行失败,这让我们很难定位脚本问题所在. 1.乱码产生的原因 1)loadrunner工具使用的是UTF-8编码,但被测系统使用的是G ...

  6. Loadrunner乱码问题

    在LoadRunner中录制脚本时,出现乱码的问题解决 我在录制一个Web的脚本时,出现中文乱码. 原因为Web中采用的是UTF-8编码,而录制脚本的选项默认没有把支持UTF8选中. 方法:1. To ...

  7. loadrunner乱码问题解决办法

    7.LoadRunner回放脚本时,在浏览器显示的中文是乱码 最近,遇到了好多乱码的问题,解决了一些,还有最后一个乱码,能想到的各种办法都试过了,还是不行,很奇怪啊. 解决这些乱码时,涉及到了http ...

  8. SpringBoot系列——Spring-Data-JPA(究极进化版) 自动生成单表基础增、删、改、查接口

    前言 我们在之前的实现了springboot与data-jpa的增.删.改.查简单使用(请戳:SpringBoot系列——Spring-Data-JPA),并实现了升级版(请戳:SpringBoot系 ...

  9. Loadrunner乱码的解决办法

    乱码出现的步骤 1.录制过程产生的乱码 2.运行过程编码不一致   录制的时候本机默认编码:GB2312,GBK,GB18030,而录制的网页有可能是uft-8编码 GB pk UTF-8 GB-X: ...

随机推荐

  1. Windows server 2012 添加中文语言包(英文转为中文)(离线)

    Windows server 2012 添加中文语言包(英文转为中文)(离线) 相关资料: 公司环境:亚马孙aws虚拟机 英文版Windows2012 中文SQL Server2012安装包,需要安装 ...

  2. CoreCRM 开发实录——开始之新项目的技术选择

    2016年11月,接受了一个工作,是对"悟空CRM"进行一些修补.这是一个不错的 CRM,开源,并提供一个 SaaS 的服务.正好微软的 .NET Core 和 ASP.NET C ...

  3. 关于Raid0,Raid1,Raid5,Raid10的总结

    RAID0 定义: RAID 0又称为Stripe或Striping,它代表了所有RAID级别中最高的存储性能.RAID 0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就 ...

  4. 玩转spring boot——结合AngularJs和JDBC

    参考官方例子:http://spring.io/guides/gs/relational-data-access/ 一.项目准备 在建立mysql数据库后新建表“t_order” ; -- ----- ...

  5. 消息队列性能对比——ActiveMQ、RabbitMQ与ZeroMQ(译文)

    Dissecting Message Queues 概述: 我花了一些时间解剖各种库执行分布式消息.在这个分析中,我看了几个不同的方面,包括API特性,易于部署和维护,以及性能质量..消息队列已经被分 ...

  6. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

  7. SharePonit 2010 更改另存为列表模板的语言类型

    从朋友处得来一个列表模板:AccessApplicationSharePoint.stp 将其通过:网站操作----网站设置----列表模板,上传进去.然后去创建列表,发现找不到此模板. 根据多年老司 ...

  8. Atitit.attilax软件研发与项目管理之道

    Atitit.attilax软件研发与项目管理之道 1. 前言4 2. 鸣谢4 3. Genesis 创世记4 4. 软件发展史4 5. 箴言4 6. 使徒行传 4 7. attilax书 4 8. ...

  9. 敏捷转型历程 - Sprint3 一团糟的演示会

    我: Tech Leader 团队:团队成员分布在两个城市,我所在的城市包括我有4个成员,另外一个城市包括SM有7个成员.另外由于我们的BA离职了,我暂代IT 的PO 职位.PM和我在一个城市,但他不 ...

  10. MemoryMappedFile 在 Mono in Linux 的开发笔记

    前言 MemoryMappedFile(简称MMF)类是.NET中对内存映射文件进行操作的类,内存映射文件是非常高效的本地IO方案,由操作系统提供内存与IO文件之间的映射转换,对内存映射文件的更改由操 ...