问题二:如楼主所说,手工测试,显示没有问题,这说明程序没有出错,是脚本的总题.楼主给的出错信息,不清淅,请详细说明,描述如下,最初录制脚本,查看r的日志,会出现登录的时候是“user???”,第二页显示“欢迎 user?”;脚本参数化后,第二个Vuser日志显示是user????,第三个Vuser日志显示是user????. 建议把脚本相关部分贴上来
怀疑此问题,可能脚本某处有隐含值需要进行关联,显示才会正确 最后一贴.还有一个小时就失效了。让我把这个帖子完成吧。
首先感谢所有关注和回帖的兄弟们,感谢你们对问题的认真回答,感谢你们独到的分析,感谢你们在QQ上耽误自己下班的时间陪着我解决问题,其中的兄弟们包括xingcyxshongwei fish_yy suchboy ilovejolly Zee kernzhang xiao_jie98 AlanStone lbzhong ldneliza yuezhiyin Koffer swordsman lotus
接着来说问题:
第一个问题:
根据1楼 34楼 41楼的叙述,问题的情形大家都清楚了,不在重复,多数兄弟都判断是关联的问题,就是我没有对viewstate设置好手动关联。在发贴之前我还不知道什么是关联,不过现在已经知道了。关联就是服务器给浏览器端传过来的数据,如果有不同的话,loadrunner的虚拟用户,可以用把这些不同的值返回给服务器。
但是我在41楼贴出来的内容 和 4楼贴出的脚本中已经包含的内容:
----------------------------
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,
----------------------------
足够说明:第一个问题和“关联”没有关系。
所以在41楼的最后两句,问题被精简成:
-----------------------
IE手工操作的时候 如果刷新出来viewstate的内容少,则能够正常登录
loadrunner压的时候 如果vuser(模仿IE)刷新出来的viewstate内容少,则不能够正常登录
-----------------------
之后公司的一个作技术的同事(互联网上非常出名哦)一句话给了我一个思路
按照他的思路,才有了47楼的不完美解决方法,内容如下:
-----------------------------------
第一个问题暂时解决鸟 过程如下。
脚本中:
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在欺骗服务器, 就是说不管在刷新完成页面后,服务器给了浏览器什么值,都不管,就直接提交回去这串多的,正确的值。
-----------------------------------
用了这个办法,其实不是解决了问题,而是避开了问题。在没有找到更好的解决方法之前,也只能如此。
在这插几句别的,我不知道其他的公司如何,在我所在的公司,我自己崇尚的是“各司其职,各负其责”。但是往往某些时候,测试和研发是一个对立的方面,总会出现互相推卸责任的状况。就这个问题来说,最早的时候,似乎责任全部在我,因为手工操作,没有任何错误的程序在Loadrnner中报错。不过现在看起来,两方面都有责任。
研发:搞清楚为什么快速刷新IE之后查看源文件ViewState会变短。
测试:搞清楚为什么ViewState变短之后,手工操作正常,Loadrunner中不正常。
[ 本帖最后由 redsong 于 2006-7-7 17:15 编辑 ] 第二个问题:
2楼提问第二个问题的时候,有这么两句话:
-------------------
传递这个用户名 用的是session
这个问题也请教大家是.net程序还是loadrunner的问题,应该如何解决。
-------------------
我想,web页面之间记录和传递数据(不是页面[客户端]和服务器之间传递数据),目前只有两种方法cookie和session
cookie因为安全性和可以被客户端禁止的问题而越来越少的被使用,所以我们这个网站用的session
发现问题之后,我的思路同样是先判断是谁的问题,研发?测试?只有先搞清楚谁应该解决这个问题之后才能往下走,
所以我问了"是.net程序还是loadrunner的问题",不过看起来搞测试的兄弟们还是太老实,太敬业了,上来都想先尝试解决这个问题。
这几天中,我屡次尝试手工操作,结果真的还让我重现了问题:
开两个IE,分别用user1 user2登录, 各自点开一个弹出新窗口的链接,分别显示欢迎user1 欢迎user2
按住一个IE(欢迎user2)的F5键疯狂刷新,停止,发现变成了另外一个(欢迎user1),再次按住另外一个IE(欢迎user1)的F5刷新,停止,发现变成了(欢迎user2)。到这里为止,问题就可以让研发解决了。
不过手工操作很难测试来这种情况,通常是反复操作多次,才能出现,也没有什么规律,并且一下一下的刷新不行,必须是很快速的刷新(和第一个问题有些相近)。
第三个问题:
三楼已有解决方案 再次强烈感谢所有回帖,关注的兄弟们。
感谢51testing网站给了大家一个畅所欲言的平台!。
感谢xingcyx兄弟,奖金没有送出去不是我的错,来北京的话不电联一下一起吃顿饭就是你的不对了。
愿所有的公司都像重视客户,重视利润,重视股票价格,重视企业信誉一样重视测试,也希望我们的薪水节节攀升!
此贴结贴,奖金失效。sdlkfj3 呵呵,奖金失效没关系,能够交到你这么一个朋友是更大的收获。
看了你分析问题解决问题的态度和方法,让我很是佩服,以后多交流,有机会去北京一定宰你一顿,呵呵。
同时你要是有机会来厦门,也欢迎来找我。
思考
看了大家的贴子,发现自己思考问题的能力不够,多向大家学习.以后有什么问题还需要向大家多请教.
对于第2个问题 楼主有代码的话 把出错代码贴出来
对于第2个问题 楼主有代码的话 把出错代码贴出来~看来我怀疑的没错~但是这种错误代码是不太好找的~
多见一些错误模式~对大家的工作都有好处 不知道楼主问题解决了没有。我看也是06年的帖子了。。
现在我也遇到类似的问题,2016年了,10年了。。
问题是这样的。
伪代码,操作步骤如下:
1、打开页面:
web_reg_save_param("viewstate1");
web_url 方法,get页面
此时,可以得到get消息返回的viewstate值
2、查询:
web_reg_save_param("viewstate2");
web_custom_request(post方法,viewstate = {viewstate1},name=某某人) //伪代码,查询这步的post,要用到第一步的viewstate值,这里可以获取,没有问题。
此时,在查询框下方会查出几十条数据
3、勾选记录点击确定【问题就在这里】:
web_custom_request(post方法,viewstate = /Wwjfwejfwoefwejof) //此处viewstate省略几千字符
问题如第三步所描述的。在第二步中,查出了记录。第三步,勾选某条记录【第二步name参数查出的人名,任选一个】,并不会产生HTTP消息,只有点击确认按钮,才会发送post消息,此时,post消息体中的viewstat不能从第二步获取,因为第二步获取的viewstat2这个参数,是没有勾选任何记录的,一旦使用了这个viewstat2,第三步的post就会报错(报为勾选任何记录)
请问还有好的解决方法?