我分别看了压的时候 通过和失败的日志发现
通过的日志中,包括:
【A】
---------------------------
Action.c(20): <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTUzMzI1MTYxN2QYAQ
Action.c(20): UeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgoFP2N0bDAwJEhlYWRDb250ZW50JERlZmF1bHRIZWFkZXIx
Action.c(20): JERlZmF1bHRMb2dpbjEkTG9naW5JbWFnZUJ1dHRvbgVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeT
Action.c(20): EkMjIyYzMwYTktNzU3Ni00MzA2LTk3ZTYtZGY0MTkzMGQ4NDViBUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRp
Action.c(20): bnF1aXJ5MSRiOWE5NzBhYy0wYjUyLTQ5ZjEtOTlmMC05YTEyOTA4ZTc1MWEFSGN0bDAwJE1haW5Db250ZW50JERlZm
Action.c(20): F1bHQxJGlucXVpcnkxJDFmNTZhMjQ3LWZkZTktNGRjMC1hMDc4LTgyMjViY2RmMjJmNAVIY3RsMDAkTWFpbkNvbnRl
Action.c(20): bnQkRGVmYXVsdDEkaW5xdWlyeTEkMDI1MzVkYTctYjQ5NC00Mzk5LTk3NmMtMDBmMTczNTZhMWI5BUhjdGwwMCRNYW
Action.c(20): luQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSQ1MjdjZDY4Ni04YjZmLTRjZjgtYTE2ZS1lNDc3NWJjOGY1ZmUFSGN0
Action.c(20): bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJDY0MTIyYTQyLTI0YTItNDMyMC1iNjNiLTE1ODk5ZjFmNz
Action.c(20): k4YwVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeTEkNjRiYWYzZTUtNDE0Ny00ZWY0LTgyMzAtNjE5
Action.c(20): N2QxM2M2MjNhBUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSQyNzVlNzE2YS0xMjAzLTQ2NzktYm
Action.c(20): UwMi04M2U3ODhmZWFlOTcFSGN0bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJGU5ZmNlYjNjLTJhOTgt
Action.c(20): NGQ3OS04OTJjLThhN2ExMDQ3YjM3YjDuiOnVXoWOEqr1oTiU/RZceH7O" />\r\n
---------------------------
【B】
---------------------------
Action.c(20): 通知: 保存参数“Siebel_Analytic_ViewState2 = /wEPDwUKMTUzMzI1MTYxN2QYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgoFP2N0bDAwJEhlYWRDb250ZW50JERlZmF1bHRIZWFkZXIxJERlZmF1bHRMb2dpbjEkTG9naW5JbWFnZUJ1dHRvbgVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeTEkMjIyYzMwYTktNzU3Ni00MzA2LTk3ZTYtZGY0MTkzMGQ4NDViBUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSRiOWE5NzBhYy0wYjUyLTQ5ZjEtOTlmMC05YTEyOTA4ZTc1MWEFSGN0bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJDFmNTZhMjQ3LWZkZTktNGRjMC1hMDc4LTgyMjViY2RmMjJmNAVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeTEkMDI1MzVkYTctYjQ5NC00Mzk5LTk3NmMtMDBmMTczNTZhMWI5BUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSQ1MjdjZDY4Ni04YjZmLTRjZjgtYTE2ZS1lNDc3NWJjOGY1ZmUFSGN0bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJDY0MTIyYTQyLTI0YTItNDMyMC1iNjNiLTE1ODk5ZjFmNzk4YwVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeTEkNjRiYWYzZTUtNDE0Ny00ZWY0LTgyMzAtNjE5N2QxM2M2MjNhBUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSQyNzVlNzE2YS0xMjAzLTQ2NzktYmUwMi04M2U3ODhmZWFlOTcFSGN0bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJGU5ZmNlYjNjLTJhOTgtNGQ3OS04OTJjLThhN2ExMDQ3YjM3YjDuiOnVXoWOEqr1oTiU/RZceH7O”
----------------------------
【C】
----------------------------
Action.c(29): 通知: 参数替换:参数“Siebel_Analytic_ViewState2”=“/wEPDwUKMTUzMzI1MTYxN2QYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgoFP2N0bDAwJEhlYWRDb250ZW50JERlZmF1bHRIZWFkZXIxJERlZmF1bHRMb2dpbjEkTG9naW5JbWFnZUJ1dHRvbgVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeTEkMjIyYzMwYTktNzU3Ni00MzA2LTk3ZTYtZGY0MTkzMGQ4NDViBUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSRiOWE5NzBhYy0wYjUyLTQ5ZjEtOTlmMC05YTEyOTA4ZTc1MWEFSGN0bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJDFmNTZhMjQ3LWZkZTktNGRjMC1hMDc4LTgyMjViY2RmMjJmNAVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeTEkMDI1MzVkYTctYjQ5NC00Mzk5LTk3NmMtMDBmMTczNTZhMWI5BUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSQ1MjdjZDY4Ni04YjZmLTRjZjgtYTE2ZS1lNDc3NWJjOGY1ZmUFSGN0bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJDY0MTIyYTQyLTI0YTItNDMyMC1iNjNiLTE1ODk5ZjFmNzk4YwVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeTEkNjRiYWYzZTUtNDE0Ny00ZWY0LTgyMzAtNjE5N2QxM2M2MjNhBUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSQyNzVlNzE2YS0xMjAzLTQ2NzktYmUwMi04M2U3ODhmZWFlOTcFSGN0bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJGU5ZmNlYjNjLTJhOTgtNGQ3OS04OTJjLThhN2ExMDQ3YjM3YjDuiOnVXoWOEqr1oTiU/RZceH7O”
Action.c(29): 通知: 参数替换:参数“NewParam”=“useruser4”
----------------------------
失败的日志中 包括:
【A】
----------------------------
Action.c(20): UeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFP2N0bDAwJEhlYWRDb250ZW50JERlZmF1bHRIZWFkZXIx
Action.c(20): JERlZmF1bHRMb2dpbjEkTG9naW5JbWFnZUJ1dHRvbqEwBCUQGl7HaTuz68uaD59YwVyR" />\r\n
----------------------------
【B】
----------------------------
Action.c(20): 通知: 保存参数“Siebel_Analytic_ViewState2 = /wEPDwUKMTUzMzI1MTYxN2QYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFP2N0bDAwJEhlYWRDb250ZW50JERlZmF1bHRIZWFkZXIxJERlZmF1bHRMb2dpbjEkTG9naW5JbWFnZUJ1dHRvbqEwBCUQGl7HaTuz68uaD59YwVyR”
----------------------------
【C】
----------------------------
Action.c(29): 通知: 参数替换:参数“Siebel_Analytic_ViewState2”=“/wEPDwUKMTUzMzI1MTYxN2QYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFP2N0bDAwJEhlYWRDb250ZW50JERlZmF1bHRIZWFkZXIxJERlZmF1bHRMb2dpbjEkTG9naW5JbWFnZUJ1dHRvbqEwBCUQGl7HaTuz68uaD59YwVyR”
Action.c(29): 通知: 参数替换:参数“NewParam”=“useruser5”
----------------------------
可以看到 loadrunner在压的时候 准确无误的把服务器给浏览器的viewstate这个变量
记录下来-【A】块
保存下来-【B】块
替换到登录后的页面去-【C】块
所以我觉得,并不需要关联。不知道我的理解对不对。
那这个问题就精简成:
IE手工操作的时候 如果刷新出来viewstate的内容少,则能够正常登录
loadrunner压的时候 如果vuser(模仿IE)刷新出来的viewstate内容少,则不能够正常登录 此贴继续有效
楼主你的三个问题均做了回复
楼主你的三个问题均做了回复,由于是写在word的中因此以附件的方式上传. 原帖由 lbzhong 于 2006-7-4 16:30 发表楼主你的三个问题均做了回复,由于是写在word的中因此以附件的方式上传.
感谢答复。
1
三楼粘贴的脚本中可以看到:
web_reg_save_param("Siebel_Analytic_ViewState2",
"LB/IC=ViewState\" value=\"",
"RB/IC=\"",
"Ord=1",
"RelFrameId=1",
"Search=Body",
LAST);
还有 "Name=__VIEWSTATE", "Value={Siebel_Analytic_ViewState2}", ENDITEM,
这是不是说明loadrunner已经作了自动关联并且自动关联是正确的。
3 你说的也都想到了 的确是在 “查看树”的状态下 在新弹出来的窗口的这步下边增加的文本检查点。不过的确是没有起到作用。
loadrunner总是尝试在原来的页去找。肯定是找不到了。
2 点的是一个正常的弹出新窗口的链接 例如
http://192.168.0.1/FilePost/ShowFileDetail.aspx?FileId=e67c768c-8dba-47dc-9cca-4971c15afb78&CourseId=&CategoryId=ca0397df-af51-4be6-988b-ad3c280b59a6传递的参数分别的栏目id和文章id 类似 “e67c768c-8dba-47dc-9cca-4971c15afb78”这样的东西 就是文章id和栏目id 用的是“GUID” 号称是全球范围内不会重复(日 有啥鸟用) 。传递过去的用户名用的是session,当然登录的是user2现是出来的是欢迎"user3" 明显是session错了,但是导致session错误的原因是loadrunner还是程序本身,这是我想解决的问题。
感谢lbzhong兄弟! 不管是否解决,偶都真诚感谢你! 高手就在身边!第一个问题解决了! 呵呵,redsong我觉得第一个问题你已经可以不用理会了,因为你的脚本在controller里面已经有2个用户可以并发执行成功,通常这样我们都可以认为你的脚本是没有问题的,我想对于这一点,论坛里的各位高手应该都不会有什么异议吧?我们调试LR脚本都是做到这一步就结束了。 第一个问题暂时解决鸟 过程如下。
脚本中:
web_reg_save_param("Siebel_Analytic_ViewState2",
"LB/IC=ViewState\" value=\"",
"RB/IC=\"",
"Ord=1",
"RelFrameId=1",
"Search=Body",
LAST);
全部注释掉
同时
"Name=__VIEWSTATE", "Value={Siebel_Analytic_ViewState2}", ENDITEM,
替换为
"Name=__VIEWSTATE", "Value=/wEPDwUKMTUzMzI1MTYxN2QYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgoFP2N0bDAwJEhlYWRDb250ZW50JERlZmF1bHRIZWFkZXIxJERlZmF1bHRMb2dpbjEkTG9naW5JbWFnZUJ1dHRvbgVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeTEkMjIyYzMwYTktNzU3Ni00MzA2LTk3ZTYtZGY0MTkzMGQ4NDViBUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSRiOWE5NzBhYy0wYjUyLTQ5ZjEtOTlmMC05YTEyOTA4ZTc1MWEFSGN0bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJDFmNTZhMjQ3LWZkZTktNGRjMC1hMDc4LTgyMjViY2RmMjJmNAVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeTEkMDI1MzVkYTctYjQ5NC00Mzk5LTk3NmMtMDBmMTczNTZhMWI5BUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSQ1MjdjZDY4Ni04YjZmLTRjZjgtYTE2ZS1lNDc3NWJjOGY1ZmUFSGN0bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJDY0MTIyYTQyLTI0YTItNDMyMC1iNjNiLTE1ODk5ZjFmNzk4YwVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeTEkNjRiYWYzZTUtNDE0Ny00ZWY0LTgyMzAtNjE5N2QxM2M2MjNhBUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSQyNzVlNzE2YS0xMjAzLTQ2NzktYmUwMi04M2U3ODhmZWFlOTcFSGN0bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJGU5ZmNlYjNjLTJhOTgtNGQ3OS04OTJjLThhN2ExMDQ3YjM3YjDuiOnVXoWOEqr1oTiU/RZceH7O", ENDITEM,
兄弟们看明白了吧,相当于我的IE在欺骗服务器, 就是说不管在刷新完成页面后,服务器给了浏览器什么值,都不管,就直接提交回去这串多的,正确的值。 47楼不是完美的解决方法,相当于我用IE欺骗服务器。 毕竟有的时候,服务器在给IE传过来首页的时候,viewState有多的时候,有少的时候,而我返回去的,是一个固定的值。
此贴继续有效,同时1000元降低为800元 第一个问题 :请查看一下 是否有非同步的 静态集合~存储 用户信息~你快速刷新时把前一个用户的变量 清空了
第2个问题:脚本单独回放时也是如此吗?可以采取 内置IE 看看~
第3个问题:没看明白
那个替换是不对的~你都强制换完了~那还测啥啊~
那个替换是不对的~你都强制换完了~那还测啥啊~我在JSP中遇到过这样问题
有一个静态集合存储 用户信息~等信息不要了~集合就被清空~当你并发的时候~几个用户争抢集合~后一个把前一个的信息清空了~我怀疑是这样的 感谢49楼第一个 问题暂时搁置 等明天问过研发经理之后再继续
第二个 试过多次,单独回放的时候因为只是user1这个用户 所以不会出这样的问题,log里边看不到,所以内置IE里边肯定也看不到。
第三个 估计我也搞定了。很莫名其妙,一直都不成,突然就成了。 (参见三楼的解决方法) 原帖由 yuezhiyin 于 2006-7-4 18:19 发表
那个替换是不对的~你都强制换完了~那还测啥啊~
所以说这是一个不完美的解决方法,继续求更完美的方法。
第一个问题不干关联什么事
第一个问题不干关联什么事第2个问题不是参数化的问题
第2个问题不是参数化的问题,应该是session的问题~参数化只在你最开始的事取那个列里的值~取完以后就拉倒了~
剩下的都交给session处理~除非你在最后弹出页面的时候又参数化了一遍~
怀疑 session中 有荣誉数据~或者堆栈没清空什么的~我不懂 .net 凭经验心思着说~
请多包涵 原帖由 yuezhiyin 于 2006-7-4 18:46 发表
第2个问题不是参数化的问题,应该是session的问题~
参数化只在你最开始的事取那个列里的值~取完以后就拉倒了~
剩下的都交给session处理~除非你在最后弹出页面的时候又参数化了一遍~
怀疑 session中 有荣誉 ...
同样是怀疑程序的问题。目前的状况是手工测试的时候,此问题无法出现,导致不能说服研发人员。 从LoadRunner的角度来看是不需要了解.Net的Session机制如何运作的。
LoadRunner只是从最终产生的HTML文件中收集、查找数据,从客户端发送给服务器端。
1. 你所说的长短ViewState 只是你在页面上操作多少导致的长短,.Net 会产生很多ViewState数据保存用户的操作信息,在你刷新页面的时候数据仍然保留,操作的过程越长,数据量越大,ViewState就越大,例如,你页面上有一个很大的DataGrid,那么你可以看看ViewState相当长。
解决:不管ViewState多长或者多短,都需要关联。一般LR会自动关联,但是如果没有自动,就要手工操作了。就用web_reg_save_param()保存下来ViewState的数据。
2. 页面中某个地方没有完全参数化,仔细检查,或者跟Developer讨论是否这个东西加密了。然后在某个地方有解密出来了。
3. No comments. 呵呵,楼上对第一个问题说得很清楚,佩服佩服!
不过楼主的问题正好跟我们平常的理解相反,如果对viewstate做了关联,会发生他说的时而变长时而变短的情况,而且当他在手工操作的时候,不管viewstate是长还是短,都可以登录成功,而如果在脚本里就不行了,对这个现象我就觉得很奇怪。所以他最后才采取了不得已的办法,取消了关联。
检查程序吧!!
检查程序吧~看看usename字段是怎么传递的~除了手动 检查 还没想出什么太好的方法关注!!!!
楼主问题解决之后一定要说明怎么解决的啊.我也遇到和你一样的情况,最终由于无法解决而放弃了.这个问题困惑我N久了啊.
我会一直关注的!!!