热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【LoadRunner】回放脚本ReplayLog不报错但结果不成功"msg":"Contenttype'application/octet-stream'notsupported"

电脑坏了好久,最近终于修好了,停更了好久。近来遇到一个问题脚本内容如下:订单确认:订单确认后,订单状态由创建状态变成已确认状态。录制了脚本之后,从数据库中查询导

电脑坏了好久,最近终于修好了,停更了好久。

近来遇到一个问题

脚本内容如下:

订单确认:订单确认后,订单状态由创建状态变成已确认状态。

录制了脚本之后,从数据库中查询导出创建状态的订单,对脚本进行订单号参数化。确认的脚本请求如下:

	web_custom_request("submit", 
		"URL=http://127.0.0.1/goOrder/submit?", 
		"Method=PUT", 
		"TargetFrame=", 
		"Resource=0", 
		"RecCOntentType=application/json", 
		"Referer=http://127.0.0.1/#order", 
		"Snapshot=t7.inf", 
		"Mode=HTML", 
		"Body=[\"{订单号}\"]", 
		LAST);

(题外话:RESTful架构里有get、post、put、delete等method,该请求中使用了PUT,详情可谷歌百度一下RESTful)


回放脚本,查看下方的Replay Log 提示Pass,不报错,但是查询订单状态依然是创建状态,没有更新为已确认状态。


查错过程:

1、从Script模式切换到Tree+HTTP View模式,查看回放

2、查看录制时的response信息,发现头部提示200 OK,返回的信息也正常,response信息简要如下:

	{
  	"XX1609240001" : {
   	 "code" : "0",
 	   "msg" : "[XX1609240001]操作成功!"
 	 }
	}

code一般是标识是否执行成功,code=0一般情况下就是成功,其它就是失败,并且会在msg里返回错误信息。

3、查看回放时的response信息,发现虽然头部提示200 OK,但是具体的返回信息却有异常。与录制的时候做确认后response的信息简要如下:

	{
  	"code" : "000016",
 	 "msg" : "Content type 'application/octet-stream' not supported",
 	 "data" : null
	}

这一提示信息我们可以理解为服务器不认客户端发出的Content type,即不支持application/octet-stream


4、这时候查看一下录制时的request和response的头部信息,都发现有Content type的信息,且值为application/json,而不是application/octet-stream



5、这时候再查看回放时的脚本的request和response的头部,会发现只有response含有Content type,而request并没有。这就与录制时的有异。



6、查看一下web_custom_request这个请求函数,可以在LR自带的Function Reference里查询该函数,或者在百度查函数关键词查看中文版解释,主要查看其语法:

(具体语法可自行百度)

在查看语法解释,发现有一个参数

EncType:编码类型。此参数给出一个内容类型(Content-Type),指定其做为回放脚本时“Content-Type”请求头的值,例如“text/html”。Web_custom_request函数不处理未编码的请求体。请求体参数将会使用已经指定的编码方式。因此,如果指定了不匹配HTTP请求体的“EncType”,会引发服务端的错误。通常我们建议不要手动修改录制时的“EncType”值。

任何对于“EncType”的指定都会覆盖web_add_[auto_]header函数指定的Content-Type。当指定了“EncType=”(空值)时,不会产生“Content-Type” 请求头。当省略了“EncType”时,任何一个web_add_[auto_]header函数都会起作用。如果既没有指定EncType也没有web_add_[auto_]header函且“Method=POST”,

“application/x-www-form-urlencoded”会做为默认值来使用。其他情况下,不会产生Content-Type请求头。
 (太理论了/(ㄒoㄒ)/~~,我都看不下去了)

简单来说就是自己在web_custom_request这个请求函数中添加EncType,即手工添加Content-Type,值为

application/json

	web_custom_request("submit", 
		"URL=http://glsuat.midea.com/goOrder/submit?", 
		"Method=PUT", 
		"TargetFrame=", 
		"Resource=0", 
		"EncType=application/json",
		"RecCOntentType=application/json", 
		"Referer=http://glsuat.midea.com/#order", 
		"Snapshot=t7.inf", 
		"Mode=HTML", 
		"Body=[\"{订单号}\"]", 
		LAST);

7、回放脚本,在数据库中查看结果,可以发现订单状态能更新为已确认状态。

8、成功啦~不过也不造是代码问题,还是LR本身的缺陷问题,毕竟LR也不是第一次抽风~这个也是帮别人远程解决的问题,所以也没继续跟开发人员沟通。个人是比较倾向后者原因。。。回头再问问负责这项目的测试人员吧~









推荐阅读
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 本文讨论了如何在codeigniter中识别来自angularjs的请求,并提供了两种方法的代码示例。作者尝试了$this->input->is_ajax_request()和自定义函数is_ajax(),但都没有成功。最后,作者展示了一个ajax请求的示例代码。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • python限制递归次数(python最大公约数递归)
    本文目录一览:1、python为什么要进行递归限制 ... [详细]
  • HTML5网页模板怎么加百度统计?
    本文介绍了如何在HTML5网页模板中加入百度统计,并对模板文件、css样式表、js插件库等内容进行了说明。同时还解答了关于HTML5网页模板的使用方法、表单提交、域名和空间的问题,并介绍了如何使用Visual Studio 2010创建HTML5模板。此外,还提到了使用Jquery编写美好的HTML5前端框架模板的方法,以及制作企业HTML5网站模板和支持HTML5的CMS。 ... [详细]
author-avatar
手机用户2502853267
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有