loadrunner测试ajax框架

loadrunner测试ajax框架的系统时,录制回放都没有报错,但是回放后系统中没有产生数据,解决方法

loadrunnerajax框架测试脚本headerajax

【问题描述】用loadrunner测试ajax框架的系统时,录制回放都没有报错,但是回放后系统中没有产生数据,数据始终不能写入数据库。查了一下原因,应该是录制的脚本不完善的问题,因为JS是在客户端执行的程序,LR只能监控客户机与服务器之前的通信。

【解决方法】: Recording options> HTTP Properites> Advanced > Headers: 选择"Record headers not in list", 然后点ok。重新录制一遍脚本,会发现脚本里多出一些 web_add_auto_header, web_add_header函数。把这些函数中跟ajax相关的,加到原脚本里,重新回放,问题解决。

验证loadrunner对Ajax内容的校验

loadrunner11对网页AJAX的测试

业务流程:用户登录-搜索书籍-预订书籍
其中登录输入用户名和密码;搜索输入书籍名称点击button搜索;预订需要在书籍搜索结果点击书籍后面的request按钮,进入request页面,填写日期相关信息点击提交。
开始计划时,感觉这个脚本是最好录制的,于是把计划排在后面,但是在实际操作中遇到难题。
1.在预订书籍这个事务中,有二次提交数据,第一次是把书籍内容提交到表单,第二次是提交预订日期等信息。但是在这两次提交的数据中,找不到跟书籍有关的任何信息,无法对预订书籍事务进行参数化。
解决方法:
尝试1:对脚本中所有出现书籍名称的字段进行参数化,二个参数运行二次,第一次成功,第二次失败
尝试2:搜索的时候仅搜索出唯一一本书籍,只参数化搜索事务,二个参数运行二次,第一次成功,第二次失败
尝试3:设置loadrunner-record option-HTTP Property-Advanced-Header-Record header not in list. 重新录制,发现脚本多了许多web_add_auto_header,web_revert_auto_header函数,搜索的时候仅搜索出唯一一本书籍,只参数化搜索事务,二个参数运行二次,第一次成功,第二次失败
尝试4:协议选择AJAX,设置loadrunner-record option-HTTP Property-Advanced-Header-Record header not in list。设置参数二次运行二次,均成功。

AJAX预订脚本如下:
//search one book and request this book
    lr_start_transaction("search");
    lr_think_time(24);
//input book name
    web_edit_field("query",
        "Snapshot=t4.inf",
        DESCRIPTION,
        "Type=text",
        "Name=query",
        ACTION,
        "SetValue={title}",
        LAST);
//if on search result,this text will display
    web_reg_find("Text=No results were found for your search request",
       "SaveCount=count2",
       LAST);
//click search button
    web_button("INPUT_2",
        "Snapshot=t5.inf",
        DESCRIPTION,
        "Type=submit",
        "Tag=INPUT",
        "ID=search_submit",
        ACTION,
        "UserAction=Click",
        LAST);

if (atoi(lr_eval_string("{count2}"))==0)
       {
        lr_end_transaction("search", LR_PASS);
        lr_output_message("search suss,because %d", atoi(lr_eval_string("{count2}")));
        lr_output_message("search title is %s",lr_eval_string("{title}"));
       }
    else
       {
        lr_end_transaction("search", LR_FAIL);
         lr_error_message("search fail,because %d", atoi(lr_eval_string("{count2}")));
       }

//starting request transaction
    lr_start_transaction("request");
    lr_think_time(10);
    web_check_box("listItems",
        "Snapshot=t6.inf",
        DESCRIPTION,
        "Name=listItems",
        ACTION,
        "Set=ON",
        LAST);
//click the request button
    web_text_link("Request",
        "Snapshot=t7.inf",
        DESCRIPTION,
        "Text=Request",
        ACTION,
        "UserAction=Click",
        LAST);

lr_think_time(13);

web_list("mainLocationFilter",
        "Snapshot=t8.inf",
        DESCRIPTION,
        "Name=mainLocationFilter",
        ACTION,
        "Select=Hong Kong Central (*1000000)",
        LAST);

lr_think_time(5);

web_edit_field("expirationDate",
        "Snapshot=t9.inf",
        DESCRIPTION,
        "Type=text",
        "Name=expirationDate",
        ACTION,
        "SetValue=2011/08/08",
        LAST);

web_reg_find("Text=Transaction Reference Number",
        "SaveCount=count3",
        LAST);

web_reg_find("Text=Your request has been submitted",
        "SaveCount=count4",
        LAST);

web_button("INPUT_3",
        "Snapshot=t10.inf",
        DESCRIPTION,
        "Type=submit",
        "Tag=INPUT",
        "ID=id52",
        ACTION,
        "UserAction=Click",
        LAST);

if (atoi(lr_eval_string("{count3}"))==1&&atoi(lr_eval_string("{count4}"))==1)
       {
         lr_end_transaction("request", LR_PASS);
         lr_output_message("request suss,because %d", atoi(lr_eval_string("{count3}")));
       }
    else
       {
         lr_end_transaction("request", LR_FAIL);
         lr_error_message("request fail,because %d", atoi(lr_eval_string("{count4}")));
       }

时间: 2024-10-29 19:06:44

loadrunner测试ajax框架的相关文章

LoadRunner测试ajax框架,回放后系统中没有产生数据解决方法

LoadRunner测试ajax框架的系统时,录制回放都没有报错,但是回放后系统中没有产生数据,数据始终不能写入数据库.查了一下原因,应该是录制的脚本不完善的问题,因为JS是在客户端执行的程序,LR只能监控客户机与服务器之前的通信. 解决方法: Recording options> HTTP Properites> Advanced > Headers: 选择"Record headers not in list", 然后点ok. 重新录制一遍脚本,会发现脚本里多出一

LoadRunner测试AJAX

什么是AJAX? Ajax, shorthand for Asynchronous JavaScript and XML, is a web development technique for creating interactive web applications. The intent is to make web pages feel more responsive by exchanging small amounts of data with the server behind th

Ajax工作原理以及常用的Ajax框架

1,关于同步和异步 异步传输是面向字符的传输,它的单位是字符:而同步传输是面向比特的传输,它的单位是桢,它传输的时候要求接受方和发送方的时钟是保持一致的. ajax可以提升用户体验,它是利用异步请求方式的.打个比方,如果现在你家里所在的小区因 某种情况而面临停水,现在有关部门公布了两种方案,一是完全停水8个小时,在这8个小时内完全停水,8个小时后恢复正常.二是不完全停水10 个小时,在这10个小时内水没有完全断,只是流量比原来小了很多,在10个小时后恢复正常流量,那么,如果是你你会选择哪种方式呢

Selenium测试Ajax程序(转)

上周末参加了Qclub的百度技术沙龙,听了百度的孙景卫讲了Web自动化测试,讲的非常好,然后在小组讨论时又有幸座在了一起.我们讨论的一个内容,就是Ajax应用程序比原来的非Ajax程序更不易测试,这里有两个主要原因. 第一:Ajax使得基于纯录制的方式无法工作,因为录制一个操作,这次返回需要5秒钟,下次会更多或更少. 第二:一些测试工具是基于原来非Ajax程序来开发的,后面没做对应的升级. 但是,同样有很多工具支持Ajax的测试,今天我们就来看一下大名鼎鼎的Selenium如何测试Ajax程序.

loadrunner测试TCP协议服务器性能

最近对服务器的性能感兴趣,于是开始研究了一阵子loadrunner如何做采用TCP协议交互的服务器的性能测试,对loadrunner不是很熟悉,所以一开始也走了一些弯路,现将学习的过程记录下来,为以后做参考吧. TCP协议的服务器的性能测试,我想大家都会选择loadrunner的winsocket协议进行测试,我也是采用此种方式.下面将逐一记录如何使用此协议做性能测试. 1.采用DLL文件方式进行测试 由于与服务器连接的客户端的DLL文件我手头有,同时其对应的头文件也有,所以一开始试想的是采用l

封装自己的Ajax框架

Ajax技术就是利用javascript和xml实现异步交互的功能. 首先先来介绍一下Ajax相关知识点 一.Ajax对象的创建 1.创建Ajax对象的方式 a.第一种方式是针对IE浏览器 b.第二种方式针对w3c:在IE的高版本(IE8+),已经支持了XMLHttpRequest类 2.解决兼容性 a.创建公共文件 public.js b.在需要使用ajax对象的页面中,包含以上js文件 二.ajax对象的相关属性和方法 方法: 1.初始化ajax对象 open(method,url)  me

LoadRunner测试50人同时登陆下单

LoadRunner测试50人同时登陆下单 一.LoadRunner简介 LoadRunner,是一种预测系统行为和性能的负载测试工具.通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试.企业使用LoadRunner能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期. LoadRunner可适用于各种体系架构的自动负载测试,能预测系统行为并评估系统性能. 二.名词解释 1.集合 集合点的意思时等到特定的用户数后再一起执行某

LoadRunner测试结果分析02 转载至zhangzhe的新浪博客

LoadRunner测试结果分析之我见 上述测试过程的重点在于事务,而LoadRunner生成的测试结果图并不局限于事务上,其中还有是关于Vusers.Errors.Web Resources.Web Page diagnostics的测试图. 1. 对于Vusers的测试图有3种:Running Vusers.Vusers Summary.Rendezvous,其中Running Vusers是关于虚拟用户加压.施压.减压的情况图: Vusers Summary是用户运行结果的综述图:Rend

loadrunner测试c/s架构的应用系统

用LoadRunner测试c/s架构的软件,怎样去选择协议,困扰了我很久,看到这篇文章,感觉有点收获,所以特意转了过来,希望对大家有用. 首先,什么是协议?协议无非就是一个约定,关于数据包发送的格式的约定,就是说如果大家都这样发送,那么通信就能够成功,如果大家都各按各的来,那么就没办法进行通信了.那么接下来就是LR录制时的工作原理了,LR的录制和WR不一样,它不关心你的对象识别什么的,不关心你的什么窗口之类的,LR有一个Agent进程,来专门监控客户端和服务器之间的通信,然后用自己的函数进行录制