LoadRunner录制Web Services协议.doc_第1页
LoadRunner录制Web Services协议.doc_第2页
LoadRunner录制Web Services协议.doc_第3页
LoadRunner录制Web Services协议.doc_第4页
LoadRunner录制Web Services协议.doc_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

LoadRunner8.0的 Virtual User Generator录制Web Services协议存在一个bug,当服务器的操作系统是中文时,LoadRunner会自动将WSDL文件的头改为,当回放脚本时会报以下错误:Error: server returned an incorrectly formatted SOAP response因此在录制Web Services协议前,需要打两个补丁:LR80WebServicesFP1_setup.exelrunner_web_services_patch_1.exe录制:首先当然是选择Web Services协议了点击OK这里有两个选择,录制客户端程序或扫描WSDL文件,如果选择客户端程序,录制的是客户端实际的操作;如果选择扫描WSDL文件,则可自定义调用Web Service方法的顺序。这里选择Scan WSDL File,点击Next输入WSDL的URL,比如:7001/webservice/TraderService?WSDL,点击Next,这时LoadRunner会检测此URL,如果检测正确,会进入以下界面点击NextLoadRunner会将检测到的Web Service列出来,包括服务名和此服务提供的方法,选择需要录制的方法,并点击“”按钮,点击Next此处可对输入参数及输出结果进行设置,设置后点击Next可在此处设置Run-Time Setting,如果勾选“Run script after generation”,则生成脚本后自动回放,点击Finish,脚本录制完成。LoadRunner8.0的在录制Web Services协议脚本时,出现以下问题,根据官方资料,需要下载2个补丁解决此问题:Error: server returned an incorrectly formatted SOAP response下载补丁:1lrunner_web_services_patch_1.exe2 LR80WebServicesFP1_setup.exe注意事项:请严格按上面的顺序安装安装完成后,LoadRunner安装程序中将出现如下图所示,表明安装成功:准备WSDL文件:在IE里输入地址: http:/XXX/webservices/XXX.asmx?wsdl打开WSDL文件后,点击“另存”按钮,保存文件为 .wsdl 格式LoadRunner,录制脚本,选择Webservice协议如下图所示:选择Scan WSDL File如图选择Specify WSDL for Scanning中的从File指定,如本文作者调用XXX.wsdl文件如图接下来下一步哦,View the Validation report接下来选择对应的方法接下来Provide values for the Web Service methods点击下一步后,成功了,当然你也可以在这设置Run-Time Setting经过以上操作,脚本开发完毕最近刚做的一个性能测试,使用webservice协议,想把这些东西总结一下,因为之前做性能很少,所以有什么说的不对的地方,还请大家给纠正。开始我装的是8.1版本,这个版本只有一个方式webservice call建立脚本,当时也是在网上查的怎么建立这种脚本,现在以9.1为例,大致是这样的:首先选择协议:protocol.jpg之后选择add service call,addservicecall.jpg如上图service选择要导入的service,可以选择URL的方式或者FILE的方式进行导入(还有其它的方式我没用过)select wsdl.jpg这个URL是开发提供的他们的访问地址,可以直接给开发人员要。之后要导入soap头和输入参数,如下:import.jpgheader.jpg(我对soap不是特别了解,个人认识头里边包括了报文的一些说明信息,像ID之类的,我们调脚本的时候主要是根据这个头里的ID去日志里查错的)脚本建成后大概是这样的:web_service_call( StepName=busSend_102, SOAPMethod=BusService|BusPort|busSend, SOAPHeader=dd, ResponseParam=response, Service=BusService, ExpectedResponse=SoapResult, Snapshot=t1272248533.inf, BEGIN_ARGUMENTS, RequestWord=ddd, END_ARGUMENTS, BEGIN_RESULT, END_RESULT, LAST);可以按照刚才的方式建立的时候把soap header和输入参数导进来,也可以建成脚本后直接在相应的地方去修改;好像这个导入的参数它的格式还有就是数量一定要和WSDL文件对上号才成,可是WSDL文件里可以定义哪个可以是非必输的,可是如果不输的话就要使用标准的格式使它为空,当时我在输入参数那费了很大的劲,一个脚本里它的输入参数都是string类型的,直接把它输入的东西转换下格式就OK了,可是有一个脚本它的参数是一个类,而且定义的一些字段有可能不是必输的,有的是可以输入多个值的,当时我直接导入参数的地方使用导入XML的方法导,一直报错,说是格式不对,在脚本里直接输也是报错,后来换成LR的9.1版本,使用导入soap文件的方式去做的(如果哪位知道这种情况下怎么用add service call的方式做请告诉我一下下);下面是导入soap文件的方法:选择webservice协议后,选择import soap,imoprt soap.jpg选择要导入的soap文件(当时我们的soap文件是这样获得的:使用了一个抓包工具,让开发使用自己的测试客户端向服务器发报文,然后截取发送的数据包里的报文 .直接把这部分报文存成XML文件,之后导入就可以了。在service management里,选择要导入的WSDL文件,这个导入和webservice call的方式一样,导入WSDL文件后,如下图URL.JPG在URL的下拉框里会出现相应的URL,选择确定后,生成相应脚本。脚本大概是这样的: soap_request(StepName=SOAP Request, URL=http:/?.?.?.?:?/XX/XX/XX, SOAPEnvelope= , SOAPAction=, ResponseParam=response, Snapshot=t1272249719.inf, LAST);return 0;这种方式好像比add service call的方式要简单( 个人觉得),不过很奇怪我们这有的脚本用导入soap文件的方式就是无论怎么样都发不通,可是用另一种方法却可以,呵呵,如果有哪位高手知道其中的原因可以讲一下。-Testing Web Services With a Standard Web VuserTesting Web Services With a Standard Web VuserIt is possible to test web services using the standard Web (HTTP/HTML) virtual user type instead of the Web Services vuser type. The main disadvantage of this is that you cannot generate your SOAP body from the WSDL file using the VuGen wizard. But if you know what your XML request should look like, then you shouldnt have any real problems.Here are my tips: Send your SOAP payload using lr_custom_request(). Add a SOAPAction HTTP header using web_add_header(). Remove unnecessary HTTP headers (that are generated automatically by VuGen) with web_remove_auto_header(). Dont forget to verify that you get a valid response. Use web_reg_find() for a simple check. For better verification of the SOAP response use lr_xml_find(). To extract values from the response body, use lr_xml_get_values(). Brush up on your XPath qeries beforehand though. It may be necessary to HTML-encode some characters in your XML/SOAP message (e.g. convert “&” to “&”). Unfortunately VuGen does not provide this functionality (but HP could easily add it to the web_convert_param function), so you will have to either write (or find) a function to do it, or convert all the entries in your data table before running the script.As an example, here is a simple script that makes use of a web service that will look up the source of a Shakespeare quote for you. The WSDL is available from url/WSShakespeare.asmx?wsdl./urlAction()/ ContentCheck Rules for known error messagesweb_global_verification(Text=Speech not found, ID=SpeechNotFound, LAST);lr_start_transaction (Search For Shakespeare Quote);/ By default, VuGen sends a user-agent header./ Lets remove this as an example of removing automatically generated headers.web_remove_auto_header(User-Agent, ImplicitGen=No, LAST); / Add a SOAPAction HTTP headerweb_add_header(SOAPAction, /WebServices/GetSpeech);/ Save entire body from the HTTP response for later checking with lr_xml_find.web_reg_save_param(ResponseBody, LB=, RB=, Search=Body, IgnoreRedirections=Yes, LAST);/ Note that the text to search for would normally be replaced with a parameter,/ and so would the element of the below SOAP message.web_reg_find(Text=TWELFTH NIGHT, LAST);web_custom_request(Search Shakespeare, URL=/WSShakespeare.asmx, Method=POST, Resource=0, Referer=, Snapshot=t1.inf, Mode=URL, EncType=text/xml; charset=utf-8, Body= / As it is SOAP, you are unlikely to have to use BodyBinary, unless your request has CDATA. Be not afraid of greatness , LAST);/ The response from the web service looks like this:/* <SPEECH> <PLAY>TWELFTH NIGHT</PLAY> <SPEAKER>MALVOLIO</SPEAKER> Be not afraid of greatness: twas well writ.</SPEECH> */ An example of extracting the a value from a SOAP reponse./ This saves the element into OutputParameter./ The same syntax could be used with lr_xml_find to check the response.lr_xml_extract(XML=ResponseBody, XMLFragmentParam=OutputParameter, Query=/soap:Envelope/soap:Body/GetSpeechResponse/GetSpeechResult, LAST);lr_output_message(Source of Shakespeare quote: %s, lr_eval_string(OutputParameter);lr_end_transaction (Search For Shakespeare Quote, LR_AUTO);return 0; 2.1.2 录制Web Services脚本(1)在进行性能测试时,大部分对Web性能测试,选择Web(HTTP/HTML)协议即可,但录制完脚本后,回放脚本过程中有时会发生中断或停止的情况,查看错误时,如果无法找到SOAP文件字样时,就需要考虑更换脚本录制协议了。通常首先考虑更换Web Services协议,再次录制脚本,问题就相应解决了。在录制Web Services脚本前,首先对Web Services做一个简要的介绍,这样有助于读者或者测试人员能够更好地利用Web Services协议录制脚本。1什么是Web ServicesWeb Services是一种构建应用程序的普通模型,并能在所有支持Internet通信的操作系统上实施运行。Web Services令基于组件的开发和Web的结合达到最佳,基于组件的对象模型,如:分布式组件对象模型(Distributed Component Object Model, DCOM)、远程方法调用(Remote Method Invocation, RMI)、互联网内部对象请求代理协议(Internet Inter-Orb Protocol, IIOP)都已经发布很长时间,但是它们都依赖于特殊对象模型协议。而Web Services利用SOAP和XML对这些模型在通信方面作了进一步的扩展,以消除特殊对象模型的障碍。进一步地,Web Services还基于HTTP和SOAP协议,使得Web用户通过Web调用的方法使用SOAP和HTTP来调用远程对象,确保业务数据得以在Web上传输。2Web Services结构客户根据WSDL描述文档,会生成一个SOAP请求消息。Web Services都是放在Web服务器(如IIS)后面的,客户生成的SOAP请求会被嵌入在一个HTTP POST请求中,发送到Web服务器,Web服务器再把这些请求转发给Web Services请求处理器。请求处理器的作用在于,解析收到的SOAP请求,调用Web Services,然后再生成相应的SOAP应答。Web服务器得到SOAP应答后,会再通过HTTP应答的方式把信息送回到客户端。3Web Services体系Web Services体系主要包括以下几个方面:(1)Web Services包括3种组件。服务提供者:提供服务,进行注册以使服务可用;服务代理者:服务交换所,服务提供者和服务请求者之间的媒体;服务请求者:向服务代理请求服务,调用这些服务创建应用程序。(2)Web Services提供3种操作。发布/不发布(Publish/Unpublish):服务提供者向服务代理者发布(注册)服务或不发布(移去)这些服务的注册;发现(Find):由服务请求者向服务代理者执行发现操作,服务请求者描述要找的服务,服务代理者分发匹配的结果;绑定(Bind):在服务请求者和服务提供者之间绑定,这两部分协商以使请求者可以访问和调用提供者的服务。(3)UDDI规范统一描述、发现和集成(Universal Description Discovery and Integration, UDDI)是一个Web Services的信息注册规范,基于UDDI的Web Services注册可以被发现。UDDI的核心部分是UDDI业务登记逻辑,即在Web上有一种分布的注册服务,这种服务以一种通用的XML格式进行描述。通过XML中的结构化描述,可以很方便地在互联网上发现需要的数据,进而方便进行分析和操作。从概念上看,一个UDDI业务登记逻辑所提供的信息包括三个部分:白页包括地址、协议和已有标识;黄页包括基于分类标准的工业类型;绿页是关于企业所包含的服务技术信息,包括网络服务说明参考和根据发现机制对各种文件和网址提供的标识支持。(4)网络服务描述语言(WSDL)网络服务描述语言(Web Services Description Language, WSDL)遵循XML语法,为服务提供者提供了描述构建在不同协议或编码方式之上的Web Services请求基本格式的方法。WSDL用来描述一个Web Services能做什么,它的位置在哪里,如何调用它等。在假定以SOAP/HTTP/MIME作为远程对象调用机制的情况下,WSDL会发挥最大作用。UDDI注册描述了Web Services绝大多数方面,包括服务的绑定细节。WSDL可以看作是UDDI服务描述的子集。WSDL将服务定义为一个网络端点的集合,或者说端口的集合。在 WSDL 里面,端点及消息的抽象定义与它们具体的网络实现和数据格式绑定是分离的。这样就可以重用这些抽象定义:消息(需要交换的数据的抽象描述)和端口类型(操作的抽象集合)。针对一个特定端口类型的具体协议和数据格式规范构成一个可重用的绑定。一个端口定义成网络地址和可重用的绑定的连接,端口的集合定义为服务。因此,一个WSDL文档在定义Web Services时使用如下的元素:类型-使用某种类型系统定义数据类型的容器;消息-通信数据抽象的有类型的定义;操作-服务支持动作的抽象描述;端口类型-操作的抽象集合,该操作由一个或多个端点支持;绑定-针对一个特定端口类型的具体协议规范和数据格式规范;端口-单一的端点,定义成一个绑定和一个网络地址的链接;服务-相关端点的集合。不难看出,WSDL给客户提供了一个模板,方便客户描述和绑定服务。上面简单介绍了Web Services基本的知识,下面采用Web Services单协议进行简要的脚本录制,读者可结合录制脚本的过程进一步了解它,具体步骤如下:选择开始程序LoadRunnerVirtual User Generator(Vuser生成器),启动VuGen。在VuGen的File下拉菜单中选择New,新建一个脚本;从Category(类别)列表中选择Web Services协议,单击OK按钮开始录制Vuser脚本。首先配置Web Services录制向导,配置程序录制的方式。Record Client Application方式是通过客户端进行录制的,Scan WSDL file方式需要录入WSDL文件才可录制,在这里选择Record Client Application进行录制,如图2-12所示。Specify WSDL files for recording向导用于配置WDSL文件,由于选择Record Client Application的录制方式,所以在此选择Do not use WSDL file during recording,表示不利用WSDL文件进行录制,如图2-13所示。(点击查看大图)图2-12 Web Services录制界面1(点击查看大图)图2-13 Web Services录制界面22.1.2 录制Web Services脚本(2)Specify application to record向导用于配置程序的访问地址、浏览器和录制脚本中的一些初始化设置。在URL中添加测试程序的访问地址;如果程序需要其他的浏览器,选择Record any application进行其他浏览器的设置,这里不需要特殊的浏览器,所以不选择此项;Record into action选项用于指定把录制的脚本放到哪一个部分,一般初始化放在vuser_init中,循环部分在Action中,结束退出部分放在vuser_end中,如图2-14所示。如有需要请单击后面的Advanced Details按钮,可以详细地配置Options Recording用来录制脚本,这里不介绍Options Recording,在以后的章节中有详细的介绍。单击完成按钮即可完成Web Services的向导配置。然后VuGen将根据程序的访问地址自动启动应用程序,并显示Recording(录制)工具栏,开始脚本的录制,如图2-15所示。(点击查看大图)图2-14 Web Services录制界面3图2-15 Recording工具栏在整个操作过程完成后,单击停止按钮,脚本录制结束,LoadRunner自动把录制的内容保存在脚本中。在录制完毕的脚本中会出现一些函数,在后面章节中会详细介绍这些函数的使用方法。一个生成的Web Services的脚本节选如图2-16所示。(点击查看大图)图2-16 Web Services脚本图例这样就完成了Web Services单协议脚本的录制过程。2.1.3 回放脚本及调试录制完脚本后,需要单机运行一下脚本,因为在录制脚本的过程中可能会出现错误。例如:有些连接、图片或界面无法找到,需要调试;有些地方需要参数化,只有唯一值才能执行通过;还有可能回放脚本时出现-404、-500等错误页面,发生超时等现象。这时就需要把这些问题解决掉。单击工具栏中的Compile按钮,查看脚本中是否有语法或者乱码错误,如果出现错误需要手工及时调试,如果没有错误,在执行日志中显示No error detected消息提示。然后,单击工具栏中的Run按钮,开始执行脚本,在执行脚本期间,同样可以通过日志来查看发出的一些消息。选择ViewOutput Window,再选择Execution Log选项卡。如果有错误,VuGen将会提示错误。双击错误提示,VuGen能够定位到出现错误的那一行,如图2-17所示。(点击查看大图)图2-17 提示运行脚本错误单机运行测试脚本后,如果编译通过,就会开始运行,运行结果如图2-18所示。在每次单击回放脚本后,都会出现如图2-18所示的运行结果页。在结果页中可以清楚地看到脚本运行的情况,显示整个运行过程中出现成功、失败和警告情况各自的运行时间,并且记录下整个运行开始、结束的日期和时间。(点击查看大图)图2-18 单机运行脚本结果如果整个运行过程成功,在页面的左侧是整个脚本的树型结构,显示出的每个脚本的控件名称前都有绿色对号的标志,例如图片、链接、提交表单等,如图2-19所示。(点击查看大图)图2-19 运行成功时的结果页单击某个控件,在其右边便显示出其控件的页面或相应的运行步骤,如图2-20所示。(点击查看大图)图2-20 显示运行成功步骤在此结果页中还可以检测脚本中控件或者其他错误,如果脚本回放出现错误的话,会在相应控件前出现红色叉号的错误提示,如图2-21所示。(点击查看大图)图2-21 运行失败的结果页单击其控件后,在右边出现脚本未通过的具体原因,以便查找出错位置进行改正,如图2-22所示。(点击查看大图)图2-22 定位运行失败脚本录制、调试完成后,还可以通过插入事务、集合点等操作来完善、增强脚本。2.1.4 完善脚本(1) 为什么要完善增强脚本呢?首先,为了衡量服务器的性能,需要定义事务(Transaction)。例如在脚本中有一个数据查询操作,为了衡量服务器执行查询操作的性能,可以把这个操作定义为一个事务。这样在运行测试脚本时,LoadRunner运行到该事务的开始点时,就会开始计时,直到运行到该事务的结束点,计时结束。这个事务的运行时间在测试结果中会有反映。LoadRunner允许在脚本中插入不限数量的事务。在方案执行期间,控制台将测量执行每个事务所用的时间。方案运行后,可使用LoadRunner的图和报告来分析各个事务的服务器性能。其次,使用集合点是为了衡量在加重负载的情况下服务器的性能情况。在测试计划中,可能会要求系统能够承受多人同时提交数据,LoadRunner通过在提交数据操作前面加入集合点的方法,检查同时有多少用户运行到集合点,人数不足时,LoadRunner会命令已经到集合点的用户等待,当在集合点等待的用户达到要求容纳的人数(如1000人)时,LoadRunner向系统提交数据。在脚本中加入集合点后,控制台运行脚本时,可以对集合点进行策略设置,这样就可以根据实际情况在系统上模拟用户负载了。再次,在录制过程中最好加入注释,因为在录制完脚本后看到的都是脚本代码,操作复杂的业务无法找到相应的位置进行关联或者参数化的动作,这时,注释就显得尤为重要。最后,LoadRunner提供了很多函数,有些函数是在录制时根据不同的协议自带的函数。其中有些函数是供手工添加的,这就要根据实际情况进行添加了。例如脚本关联,有些变量无法实现系统自动关联,只能添加函数进行手动关联。在录制完成的脚本中,还可以根据实际情况,添加事务、集合点、注释、函数等内容来增强脚本,进一步完善。下面逐一进行介绍。1插入事务脚本中插入事务既可以在录制过程中直接插入,也可以在脚本录制结束后经编辑插入。建议采用在脚本的录制过程中插入事务的方法,这样不至于遗漏程序中应插入事务的操作。在需要插入事务的操作前,通过工具栏上的Start Transaction(开始事务)按钮插入事务,事务的名称最好有意义,这样在最后分析系统时,有助于发现系统的瓶颈点是否在具体的事务中。具体的操作方法如下:在录制Vuser脚本时,在需要定义事务的操作前面,单击录制工具栏上的Start Transaction菜单项,将打开Start Transaction对话框,如图2-23所示。接着出现如图2-24所示的对话框。(点击查看大图)图2-23 插入事务开始点 图2-24 输入事务开始名称在给事务起名字时,事务名必须以字母或数字开始,可以包含字母、数字或者下列字符:!、$、%、&、-、_、|或。填写好事务名称后,就可以对系统进行操作,单击OK接受该事务名称。VuGen将自动在Vuser脚本中插入事务的起始标志(lr_start_transaction)和终点标志(lr_end_transaction)。起点和终点之间的内容就是录制或者编写的测试事务脚本。在录制脚本过程中,随时可以单击录制工具栏上的End Transaction菜单项,结束录制,如图2-25所示。(点击查看大图)图2-25 插入事务结束点此时会出现如图2-26所示的结束事务的对话框。单击Transaction Name下拉框的箭头获得已打开事务的列表,选择要关闭的事务。事务的状态在默认情况下是LR_AUTO。一般情况下,也不需要修改,除非在手工编写代码时,有可能需要手动设置事务的状态。单击OK按钮接受该事务名称。脚本中事务的代码如图2-27所示。图2-26 选择要结束事务的名称 图2-27 插入事务图例当结束事务时,通过工具栏上的End Transaction按钮,结束事务。在结束列表中会显示最近定义的事务的名称,只要选择自己新建的事务的名称即可结束该事务。这样就完成了事务的插入操作。2.1.4 完善脚本(2)2插入集合点集合点只能在Action中插入,不能在vuser_init或vuser_end中插入。在需要插入集合点的操作前,通过工具栏上的集合点按钮插入集合点,并在集合点的输入框中输入集合点的名称。集合点的名称最好是有意义的名称,这样有助于在系统分析时,分析系统的瓶颈所在。插入集合点具体的操作方法如下:在录制Vuser脚本时,在需要插入集合点的位置,单击录制工具栏上的集合点按钮或单击Insert菜单下的Rendezvous子菜单。将打开Rendezvous(集合点)对话框,如图2-28所示。(点击查看大图)图2-28 插入集合点接着,出现如图2-29所示的对话框。输入该集合点的名称,注意,名称最好能够清楚地说明该集合点所完成的动作。脚本中集合点的代码如图2-30所示。图2-29 输入集合点名称(点击查看大图)3插入注释注释可以在录制脚本时插入,也可以在脚本录制后插入,其顺序对程序分析没有影响。在需要插入注释的操作前,通过工具栏上的注释按钮或者Insert菜单下的Comment子菜单插入注释。在Insert Comment对话框中输入对操作的注释,以便于对脚本的重复使用。在需要插入注释的位置,通过菜单或者工具栏操作,如图2-31所示。(点击查看大图)图2-31 插入注释接着,出现如图2-32所示的对话框。脚本中注释的代码如图2-33所示。图2-32 输入注释内容图2-33 插入注释图例4插入函数在录制脚本的过程中,根据不同的协议,会用到不同的函数,在此介绍几个脚本中比较常见的函数,希望初学者能对插入函数的基本操作方法有大概的了解。详细的函数调用方法,会在第6章的LoadRunner函数介绍中说明,这里不再赘述。(1)web_custom_request:允许使用HTTP支持的任何方法来创建自定义HTTP请求。(2)web_image:在定义的图像上模拟鼠标单击。例子:web_image(46.gif,Src=frame/sapphire/image/tree/15/46.gif,Ordinal=2,Snapshot=t4.inf,EXTRARES,Url=frame/sapphire/style/controls.css,Referer=http:/ 0:7001/mail/login.do, ENDITEM,Url=frame/sapphire/style/custom.css, Referer=0/mail/login.do , ENDITEM, LAST);(3)web_link:在定义的文本链接上模拟鼠标单击。例子:web_link(MAIL,Text= MAIL ,Snapshot=t3.inf,EXTRARES,Url=frame/sapphire/style/menu.css, Referer=0:7001/mail/login.do , ENDITEM,Url=frame/sapphire/style/panel.css, Referer=http:/ 0:7001/mail/login.do , ENDITEM, LAST);(4)web_submit_data:执行无条件或无上下文的表单。例子:web_submit_data(j_security_check, Action=21:10001/Application/j_security_check,Method=POST, RecContentType=text/html,Referer=21:10001/Application/login.jsp; jsessionid=013613D116183D08E6C0C05A1310B70F.node1,Snapshot=t2.inf,Mode=HTTP,ITEMDATA,Name=j_username, Value=mayi, ENDITEM,Name=j_password, Value=1, ENDITEM,Name=prelogon, Value=登录, ENDITEM,LAST);(5)web_submit_form:模拟表单的提交。例子: web_submit_form(zxlogin.do,Snapshot=t2.inf,ITEMDATA,Name=username, Value=001_yangzhifang, ENDITEM,Name=password, Value=1, ENDITEM,Name=btnlogin, Value=登录, ENDITEM,EXTRARES,Url=frame/images/quick_1_01.gif,Referer=03:8080/Application/mail/fox/zxMain.jsp,ENDITEM,Url=frame/images/quick_2_03.gif,Referer=03:8080/Application/mail/fox/zxMain.jsp,ENDITEM,LAST);(6)web_url:加载由URL属性指定的URL。例子:web_url(Application,URL=21:1000

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论