2012-10-29 21 views
0

我有以下要求,我需要从body获取ticketId。有人可以帮我吗?从web_custom_request的身体获取ID

web_custom_request("loadMessage.json", 
     "URL=http://someURL/loadMessage.json", 
     "Method=POST", 
     "Resource=1", 
     "Referer=http://someURL/096F516B149EFF0F48DD2D12B8AF2577.cache.html", 
     "Snapshot=t14.inf", 
     "EncType=application/json; charset=UTF-8", 
     "Body={\"ticketId\":\"440684\", \"ticketThread\":\"SERVICE_CREATION\", \"locale\":\"en\"}", 
     LAST); 

在此先感谢!

回答

1

您在这里看起来有一个概念性问题,就是HTTP如何以及LoadRunner如何与HTTP虚拟用户一起工作。您正在查找的数据将作为web_custom_request()的一部分传回。您实际上需要从前一个请求的响应正文中捕获值。捕获先前请求中的数据并将当前请求中的硬编码值替换为捕获的数据的过程被称为“相关性”。惠普的标准网络虚拟用户培训课程的全部三分之一都是关于这个主题的,并且涉及了几种处理动态数据的技术。这是一种技术,它是防呆:

  1. 记录你的业务流程两次
  2. 使用工具来查找请求的差异。这些将归结为与会话,状态,时间和业务流程数据相关的一些项目。您的机票ID位于业务流程数据类别中,但很可能不是唯一需要解决的项目。
  3. 一旦确定了相关候选项,请查看生成日志以查找有问题的数据片段的第一个示例。对于您的机票ID,我将搜索440684的日志。
  4. 此响应正文与请求绑定。如果您查看脚本生成日志中有关响应的信息,您应该能够确定脚本中的哪个请求生成了包含响应主体的响应。
  5. 使用涉及使用web_reg的_...()函数标准技术,捕捉您使用响应转换成所谓的相关变量
  6. 为()收集到您的web_custom_request响应
更换您的静态值

如果您的管理层没有为您提供此职位的培训和导师,那么您应该考虑他们是否对您的成功感兴趣,或者仅对您的账单能力感兴趣。这种无训练或职业发展的模式经常重演,并且通常会导致经理人将性能测试员牺牲给不满意的客户,而管理人员不会对发生的事情承担任何共同责任,因为管理团队的决策主要是主要负责发生的事情。如果你发现自己处于这样的状况,我会建议找到一个快速退出策略,因为几乎可以肯定的是,你必须为他人的培训和职业发展决定付出代价。

+0

问题是,应用程序使用GWT,并且没有任何页面可以在哪里获取ticketId。所以,当按下按钮时,id会自动生成,并且我无法找到从响应中获取id的方式。 – userN

+0

然后取出JavaScript函数并将代码转换为C.在调用之前运行C函数,并将输出插入到脚本中。 因为票证ID可能需要具有通用唯一性,所以单个工作站可能会生成六位数字不同ID并且与某个已经存在的票证ID在某些位置不冲突的可能性较低。很有可能这些ID是按顺序排列的,并且在脚本的较早版本中会生成保留,但只有在看到它时才可见或锁定。 查看您的负载生成日志以了解故障单ID值。 –