在LoadRunner中有两个常用函数:Web_submit_form和Web_submit_data,在群里有人问这两个函数有什么区别。为什么会有两个不同却功能相似的函数。区别在哪里。
首先,从工具的角度来说,厂商推荐使用Web_submit_form函数,因为这个函数看起来更易用,需要关注的东西较少。但是,从个人的角度来说,我推荐使用Web_submit_data函数。因为这个函数提供更多技术细节。在测试的过程中可控性更高。下面我就详细解释一下两个函数的工作机制:
首先看一下下面这段HTML代码
<Form Action=login.asp Method=“POST”>
<input name=user value=“”>
<input name=password value=“”>
<input type=hidden name=sessionID value=15379>
</Form>
在录制的过程中,当打开这个页面的时候,这个页面会放在LR的Cache中,之后当我们输入了用户名、口令之后,点了一下提交。Browser会向LR
Record Proxy发送一个提交请求,提交内容应该是这样的:
POST login.asp HTTP/1.1
user=steve password=buba
sessionID=15379
这时候,LR会自动比较提交的内容和Cache的内容,首先它会比较提交的数据项和Cache中的数据项是否一致。页面中有三个输入域user、password、sessionID,而提交的内容也有这三项数据,所以它认为提交数据使用了Cache中的页面,之后它会继续比较具体数据的值。它会发现sessionID的值和Cache中的值是一样的。但是user和password的值不一样。
这时候,Web_submit_form和Web_submit_data的区别就出现了:
web_submit_form(”start",
ITEMDATA,
"name=user", "value=steve", ENDITEM,
"name=password", "value=bean", ENDITEM,
LAST);
web_submit_data(”start",
“Action=login.asp”,
“Method=POST”
ITEMDATA,
"name=user", "value=steve", ENDITEM,
"name=password", "value=bean", ENDITEM,
"name=sessionID", "value=15379", ENDITEM,
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后直接就成功了,到现在还没有分析出具体原因,慢慢学习吧!
分享到:
相关推荐
4. **Web_submit_data()** 和 **Web_submit_form()**:这两个函数用于处理表单提交。Web_submit_data()适用于已知表单字段的场景,而Web_submit_form()更灵活,可以处理未知或动态生成的表单字段。 5. **Web_add_...
例如,它可能讲解了如何使用`web_url`函数来发送GET请求,`web_submit_data`或`web_submit_form`函数来提交表单,以及`web_reg_find`和`web_reg_save_param`函数来提取和保存服务器响应中的数据。 `sapgui_FuncRef....
4. **web_submit_data** 和 **web_submit_form**:两者都与表单提交有关。`web_submit_data`用于无条件或无上下文的表单提交,而`web_submit_form`则更接近用户的真实行为,它会模拟填写表单并提交的过程。 5. **...
在LoadRunner中,Web函数是用于构建和控制Web虚拟用户脚本的关键元素。这些函数模拟真实的用户行为,如浏览网页、点击链接、提交表单等。以下是对这些函数的详细说明: 1. **操作函数**: - `web_custom_request`...
- `web_submit_data`:无条件提交表单数据,常用于API接口测试。 - `web_submit_form`:模拟用户提交HTML表单,处理登录、注册等场景。 - `web_url`:加载指定URL,用于浏览网页。 2. **身份验证函数**: - `...
5. **web_submit_form**:与web_submit_data类似,但会考虑表单的上下文,模拟用户填写并提交表单的过程。 6. **web_url**:此函数简单直接地加载指定的URL,用于访问网页或资源。 7. **web_set_certificate** 和 ...
4. **web_submit_data** 和 **web_submit_form**:这两个函数用于模拟表单的提交。前者适用于无条件或无上下文的提交,后者则更适用于处理带有动态数据的表单,它可以处理表单中的输入字段和按钮。 5. **web_url**...
web_submit_data("login.pl", "Action=http://127.0.0.1:1080/WebTours/login.pl", "Method=POST", "RecContentType=text/html", "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home", "Snapshot=t2.inf", ...
web_submit_form 类似于`web_submit_data`,但这个函数更专注于处理HTML表单。它会自动处理表单中的字段和按钮,从而简化了脚本编写工作。 #### 6. web_url 该函数用于设置或更改当前的URL。这对于测试不同页面...
除了以上提到的函数,LoadRunner还有许多其他功能强大的函数,如web_image_check用于验证网页上的图像,web_reg_save_param用于提取和保存响应中的动态数据,web_submit_data和web_submit_form用于处理表单提交等。...
5. **web_submit_form**: 类似于web_submit_data,但会保留表单的上下文信息,用于更复杂的表单提交场景。 6. **web_url**: 通过指定URL加载网页,是最基础的网页请求函数。 7. **web_set_certificate** 和 **web_...
在LoadRunner中,有多种API方法可用于发送请求,如web_url()、web_submit_form()、web_submit_data()和web_custom_request()。这里主要介绍两种常用的方法: 1. 使用`web_submit_data()`函数: 这种方法适用于表单...
1. **Web协议函数**:如web_url()用于发送HTTP请求,web_image()用于处理图像请求,web_submit_data()和web_submit_form()则用于提交表单数据。 2. **数据库函数**:如db_connect()用于建立数据库连接,db_execute_...
在 Loadrunner 中,涉及到向服务器发送请求的 API 方法包括:web_url()、web_submit_form()、web_submit_data()、web_custom_request()。这些方法可以用来模拟客户端向服务器发送请求报文,例如,web_url() 方法可以...
Loadrunner提供了多种API方法用于发送请求,常见的有 `web_url()`、`web_submit_form()`、`web_submit_data()` 和 `web_custom_request()`。下面将详细介绍其中两种常用方法: - **使用web_submit_data()** - 这种...
在`web_submit_data`或`web_submit_form`等函数中,使用转换后的"str"变量,这样就可以避免乱码问题。 在实际应用中,如果脚本中的乱码问题仍然无法解决,可能需要检查其他相关设置,如脚本的保存编码、LoadRunner...
以上函数为LoadRunner中常用的几个类别,涵盖了Web测试、FTP测试、邮件测试以及日志管理等方面,对于进行性能测试和功能测试都非常关键。掌握这些函数的使用方法可以帮助测试工程师更加高效地完成测试任务。
4. Error -26388: "web_submit_form('UserLogin.action')" 这个错误表明录制的脚本方法有误。解决方法是改用基于URL的脚本录制方式,避免错误的表单提交。 5. Error -26608: "HTTP Status-Code=504 (Gateway Time-...