zoukankan      html  css  js  c++  java
  • 转:web_submit_data和web_submit_form的差别

    在LoadRunner中有两个常用函数:Web_submit_form和Web_submit_data,在群里有人问这两个函数有什么区别。为什么会有两个不同却功能相似的函数。区别在哪里。

    首先,从工具的角度来说,厂商推荐使用Web_submit_form函数,因为这个函数看起来更易用,需要关注的东西较少。但是,从个人的角度来说,我推荐使用Web_submit_data函数。因为这个函数提供更多技术细节。在测试的过程中可控性更高。下面我就详细解释一下两个函数的工作机制:

    首先看一下下面这段HTML代码

    Html代码  收藏代码
    1. <Form Action=login.asp Method=“POST”>  
    2. <input name=user value=“”>  
    3. <input name=password value=“”>  
    4. <input type=hidden name=sessionID value=15379>  
    5. </Form>  

    在录制的过程中,当打开这个页面的时候,这个页面会放在LR的Cache中,之后当我们输入了用户名、口令之后,点了一下提交。Browser会向LR Record Proxy发送一个提交请求,提交内容应该是这样的:

    Loadrunner代码  收藏代码
    1. POST login.asp HTTP/1.1  
    2. user=steve password=buba  
    3. sessionID=15379  

    这时候,LR会自动比较提交的内容和Cache的内容,首先它会比较提交的数据项和Cache中的数据项是否一致。页面中有三个输入域user、password、sessionID,而提交的内容也有这三项数据,所以它认为提交数据使用了Cache中的页面,之后它会继续比较具体数据的值。它会发现sessionID的值和Cache中的值是一样的。但是user和password的值不一样。

    这时候,Web_submit_form和Web_submit_data的区别就出现了:

    Loadrunner代码  收藏代码
    1. web_submit_form(”start",  
    2. ITEMDATA,  
    3. "name=user""value=steve", ENDITEM,  
    4. "name=password""value=bean", ENDITEM,  
    5. LAST);  
    Loadrunner代码  收藏代码
    1. web_submit_data(”start",  
    2. “Action=login.asp”,  
    3. “Method=POST”  
    4. ITEMDATA,  
    5. "name=user""value=steve", ENDITEM,  
    6. "name=password""value=bean", ENDITEM,  
    7. "name=sessionID""value=15379", ENDITEM,  
    8. LAST);  

    可以看到,Web_submit_form只提供了和Cache中有差别的数据,其余的数据会自动从Cache中取。而Web_submit_data则提供了所有的数据,不管Cache存在不存在Web_submit_data都是可以工作的。

    所以厂商会推荐使用Web_submit_form,因为它看起来更易用,甚至关联都不需要作,就能直接回放。但是这种情况只能对于简单系统适用。对于一些银行或者移动的复杂系统来说,有时侯会对Cache作特殊操作,Web_submit_form有时侯就会报一些莫名其妙的错出来。而Web_submit_data则跟Cache内容无关。稳定性和可控性都要比Web_submit_form要高很多。所以个人推荐尽量使用Web_submit_data函数。  

        但是之前遇到过一个录制上传文件的脚本问题起初用了web_submit_data提交表单怎么都不成功(脚本回访通过,但是时间文件没有上传),改用web_submit_form后直接就成功了,到现在还没有分析出具体原因,慢慢学习吧!

  • 相关阅读:
    递归算法
    抽象类(abstract class)和接口(interface)
    静态变量和实例变量
    java 工厂化生产
    win10安装使用ffmpeg+python中使用ffmpy
    C++ Concurrency in Action 读书笔记三:并发操作的同步
    C++ Concurrency in Action 读书笔记二:用mutex互斥锁保护在线程间共享的数据
    C++ Concurrency in Action 读书笔记一:thread的管理
    C++正则表达式 <regex>
    CMake使用Boost
  • 原文地址:https://www.cnblogs.com/lci05/p/3646273.html
Copyright © 2011-2022 走看看