![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
软件测试
知更鸟的自由
这个作者很懒,什么都没留下…
展开
-
安装LoadRunner时出现“计算机缺少vc2005_sp1_with_atl_fix_redist”的解决办法
在lr安装包里面 loadrunner-11\lrunner\En\prerequisites\vc2005_sp1_redist 下有 vcredist_x86.exe 安装下就可以了然后重新安装程序即可 这里对于LoadRunner安装过程中已经检测到缺少此安装组件,而在安装包的prerequisites目录下又能找到这些必需的预安装组件,我觉得LoadRunner安装过原创 2013-08-20 14:32:16 · 594 阅读 · 0 评论 -
(MYSQL)数据源 (ODBC)时不能连接到数据库服务器
在控制面板→管理工具中 对数据源 (ODBC)进行配置,不能连接到服务器上的MYSQL数据库长时间无反映 见下图,如何处理呢 在服务器MYSQL数据库中 接下去就可以进行下面的操作了原创 2013-09-03 14:13:44 · 3183 阅读 · 0 评论 -
关联函数web_reg_save_param详解
所谓关联都是使用web_reg_save_param()函数将服务器返回的内容进行收集过滤的过程1、首先介绍一个函数web_set_max_html_param_len(),当关联出错的时候VuGen都会提示以下内容:这种错误99%都是由于关联的边界设置不合理导致没有关联到所需要的内容。系统提示使用web_set_max_html_param_len()函数的目的是提醒如果被关联内容超原创 2013-09-05 10:47:11 · 4797 阅读 · 0 评论 -
LR 事务!
事务是指用户在客户端做一种或多种业务所需要的操作集,通过事务函数可以标记完成该业务所需要的操作内容;另一方面事务可以用来统计用户操作的相应时间,事务相应时间是通过记录用户请求的开始时间和服务器返回内容到客户时间的差值来计算用户操作响应时间的,如下图: 对于软件来说,通过事务得到的系统响应时间也是由非常多的部分组成的,一般来说响应时间由网络时间、服务器处理时间、网络延迟三大部分组成原创 2013-09-05 14:04:03 · 727 阅读 · 0 评论 -
LR 添加事务
通过事务监控响应时间,需要做的就是在请求的发出前添加一个事务开始的计数器,在请求结束的地方添加一个事务结束的计数器,VuGen会自动计算函数间的时间差。如下图 通过事务可以获得每个操作所小号的准备时间,例如查询、登录、删除操作,但是对于性能分析来说,这个时间还是太大了,无法有效的帮助我们定位性能瓶颈,LoadRunner能解决这个问题吗?抱歉,LoadRunner只能对自己发出的请求和原创 2013-09-05 14:42:07 · 1112 阅读 · 0 评论 -
LR 思考时间
Think Time是LoadRunner提供的一种模拟用户等待的方式,通过lr_think_time()函数实现,在函数内写入对应的时间(单位是秒),当脚本在Controller中运行到该函数时就会等待相应的时间。注意在VuGen中,回放Think Time默认关闭。Think Time在进行性能测试的时候需要打开,只有这样每个虚拟用户才是真正按照用户的操作速度来完成请求,才能得到在真实情况原创 2013-09-05 15:13:09 · 1023 阅读 · 0 评论 -
LR检查点
VuGen确定脚本运行成功的判断条件:在录制编写脚本后,通常就会进行回放,如果回放通过没有出现错误,就认为脚本是正确的。究竟VuGen怎么区分脚本是否回放正确呢?基本上所有脚本回放错误都是因为404错误,也就是页面无法找到,而只要页面返回了,VuGen都不会提示任何错误。例如前面登录Web Tours网站的脚本,由于没有做过关联操作而导致登录失败,但是脚本还是执行成功,在TestResults中显原创 2013-09-05 11:25:54 · 748 阅读 · 0 评论 -
LR集合点知识
集合点函数可以帮助我们生成有效可控的并发操作。虽然在Controller中多用户负载的Vuser是一起开始运行脚本的,但是由于计算机的串行处理机制,脚本的运行随着时间的推移,并不能完全达到同步。这个时候需要手动的方式让用户在统一时间点上进行操作来测试系统并发处理的能力,而集合点函数就能实现这个功能。集合点只需要在脚本中插入lr_rendezvous()函数即可。lr_rendezvous("s原创 2013-09-05 15:53:16 · 1444 阅读 · 0 评论 -
LR 负载的理解
当虚拟用户脚本开发完成后,使用Controller将这个执行脚本的用户从单人转化为众人,从而模拟大量用户操作,进而形成负载。我们需要对这个负载模拟的方式和特征进行配置,从而形成场景。场景是一种用来模拟大量用户操作的技术手段,通过配置和执行场景向服务器产生负载,验证系统各项性能指标是否达到用户要求,而Controller可以帮助我们对场景的设计、执行及监控进行管理。使用Controller管理场原创 2013-09-05 16:59:12 · 1294 阅读 · 0 评论 -
LR关于对参数进行截取操作的实践
脚本:Action(){ char *username; lr_output_message("参数值为:%s",lr_eval_string("{NewParam}")); username=lr_eval_string("{NewParam}"); lr_output_message("username的值是:%s",username); lr_output_mes原创 2013-09-15 22:17:10 · 594 阅读 · 0 评论 -
Loadrunner中参数和变量的使用
//字符串复制strcpy(str,"Hello ") ; //字符串连接strcat(str,"World !");lr_message("str: %s",str); //变量转为参数,将变量str的值存到参数Param中lr_save_string(str,"Param"); //参数复制lr_save_string(lr_eval_string("{Para转载 2013-09-15 22:18:20 · 589 阅读 · 0 评论 -
LoadRunner 性能测试脚本
关 键 词:LoadRunner 性能测试脚本摘 要:编写一个准确无误的脚本对性能测试有至关重要的意义。本文介绍LoadRunner的HTTP协议测试脚本编写,总结脚本编写经验1 概述脚本录制编写是性能测试的一个重要环节。在性能测试过程中,虚拟用户模拟真实用户使用被测系统,这个“模拟”的过程正是通过性能测试脚本来实现的。因此,编写一个准确无误的脚本对性能测试有转载 2013-09-18 22:03:49 · 1083 阅读 · 0 评论 -
LoadRunner 使用IP欺骗
LoadRunner 使用IP欺骗的原因1、 当某个IP的访问过于频繁,或者访问量过大是,服务器会拒绝访问请求,这时候通过IP欺骗可以增加访问频率和访问量,以达到压力测试的效果。2、 某些服务器配置了负载均衡,使用同一个IP不能测出系统的实际性能。LR中的IP欺骗通过调用不同的IP,可很大程度上的模拟实际使用中多IP访问和并测试服务器均衡处理的能力。LoadRunner 使用虚转载 2013-09-22 12:38:16 · 763 阅读 · 0 评论 -
LoadRunner函数学习一lr_save_string 和 sprintf 的使用
一、lr_save_string 使用介绍1.该函数主要是将程序中的常量或变量保存为lr中的参数。//将常量保存为参数lr_save_string("777","page");web_url(http://www.sina.com.cn/{page});lr_eval_string("{page}");lr_save_string("20140218","i");原创 2014-02-18 14:03:24 · 1547 阅读 · 0 评论 -
一个用户自动回复所有的帖子
Action(){ int i,num; char temp[255]; web_url("index.php", "URL=http://localhost:8000/phpwind/index.php", "TargetFrame=", "Resource=0", "RecContentType=text/html", "Referer=",原创 2014-02-18 22:17:36 · 1485 阅读 · 0 评论 -
wamp不能使用phpmyadmin和不能通过ip访问局域网内的网站
问题一:当我们在用wamp不能使用phpmyadmin,提示“You don't have permission to access /phpmyadmin/ on this server.”时,我们该如何解决?当你安装完成wamp后,打开localhost或ip时发现已经可以运行了,但想使用phpmyadmin时,发现提示如下内容:You don't have permissio转载 2014-06-20 13:45:54 · 1508 阅读 · 0 评论 -
使用Data Wizard来完成参数列表时遇到的问题
在进入“Database Query Wizard”窗口进行测试时,如下图 这是由于列数过多导致,在此建议,将需要用到的列给罗列开来,因此sql语句应该这样写:select Name,password from pw_members原创 2013-09-03 13:31:29 · 655 阅读 · 0 评论 -
LR里的参数类型
Date/Time 该参数类型提供了获得当前时间的参数化做法,虽然在VuGen中有now()函数用来获得当前日期,但是不如参数化中的简单明了。选择参数类型为:Date/Time如下图Date/Time 型数据往往可以帮助我们生成唯一的数据,或者填写某些时间字段表单。参数Group Name:先描述一下什么是Group Name 在VuGen中称一段代码叫做一个虚拟用户脚本,这个脚本原创 2013-09-02 16:26:50 · 2102 阅读 · 0 评论 -
LoadRunner 用户行为模拟(一)
Virtual User Generator是一种基于录制回放的工具,当你按照业务流程执行了某个软件,它会将你在操作中产生的协议录制下来,自动转化成脚本,执行完成对用户行为的模拟,从而进一步第系统产生负载。而性能测试的第一步也是最重要的一步就是生成虚拟用户脚本(Vuser Script)。在VuGen中录制得到用户的行为就好比虚拟了一个用户的行为,所以我们称该模拟的用户为Vuser,而这个脚本称为原创 2013-08-31 10:46:11 · 1286 阅读 · 0 评论 -
LR负载生成器管理
当对场景进行设计后,接着需要对负载生成器进行管理和设置。Load generators是运行脚本的负载引擎,在默认情况下使用本地的负载生成器来运行脚本。但是模拟用户行为也需要消耗一定的系统资源,所以在一台电脑上无法模拟大量的虚拟用户,这个时候可以通过调用多个LoadGenerators来完成大规模的性能负载。LoadGenerator的核心是MMDRV.exe进程,MMDRV.EXE负责运行脚原创 2013-09-05 23:31:12 · 1391 阅读 · 0 评论 -
LoadRunner基础(三)
什么时候应该用HTML-BASE Script?什么时候应该选择URL-BASE Script?一般来说如果是标准使用IE访问的B/S架构,应该使用: 这种脚本基于URL请求完成,不会带有任何前后依赖的内容。 如果是一个非IE标准的C/S架构,建议使用URL-BASE Script来录制脚本,这样可以确保不会遗漏任何HTTP请求原创 2013-08-31 15:18:14 · 512 阅读 · 0 评论 -
关于LoadRunner协议回放原理的理解
Http请求:Http请求主要由三个部分构成,分别是:方法-URI协议/版本方法:get、post、head、options、put、delete和traceURI完整地指定了要访问的网络资源版本:Http1.1 请求头包含许多有关客户端环境和请求正文的有用信息。(Accept:image、gif。。。。。。;Accept-Language;Accept-Encodi原创 2013-08-31 10:23:23 · 755 阅读 · 0 评论 -
LR常见监控项及分析
1、Disk Time(PhysicalDisk_Total)磁盘的使用率2、Processor time (Processor_Total)CPU使用率 3、在内存对象里面:MemoryPage Reads/sec(Memory) 页面读取操作率很低4、PhysicalDisk对象Avg.Disk Queue Length 内存的平均队列数5、DPC TIme 网卡网原创 2013-09-06 13:07:32 · 873 阅读 · 0 评论 -
LoadRunner用户行为(二)
Start Recording窗口Applications Type:Internet Application:指需要录制的对象是一个网络应用(基于浏览器)Program to record :指需要路子的程序名,VuGen默认支持Web客户端是IE Win32 Application 用来支持Win32的标准客户端 对于Web(HTTP/HTML)协议来录制...原创 2013-08-31 14:30:49 · 544 阅读 · 0 评论 -
Lr性能测试报告分析
http://v.ku6.com/show/OGbyLaZrtoVcly8e.html转载 2013-09-06 13:05:14 · 1085 阅读 · 0 评论 -
lr_eval_string()函数的使用学习
lr_eval_string()函数的主要作用:返回脚本中的一个参数当前的值,返回值类型:char一般多用在调试脚本时输出参数的值.具体用法如下:lr_output_message("The parameter1's value is %s",lr_eval_string("{parameter1}")),其中参数parameter1在之前已经定义了的参数lr_原创 2013-08-31 17:38:24 · 18371 阅读 · 0 评论 -
参数化
当我们录制完成脚本后,需要对脚本进行进一步的修改,添加参数化功能来确保脚本能动态运行。思考角度:录制一个用户在论坛发帖的操作,无论如何回放,得到的结果都是发送相同的帖子内容及标题,和用户的真实情况有较大的区别。如下图所示(1-1)参数化的目的(1-1) 这是由于脚本的内容都是静态的,只用通过参数化处理将静态的内容动态的才能解决这样的内容。原创 2013-09-01 10:49:17 · 392 阅读 · 0 评论 -
LR中的同行取值(same line as)
Select next row 记录选择方式Same line as,这个选项只有当参数多于一个时才会出现,其作用是根据某一个参数的行号取同一行。那么如何将多个参数存放到一个参数文件中去呢?新建两个参数regusername、regpassword。分别打开regusername、regpassword的文件指向,将这两个参数的文件都指向parameters.dat(新建),然后设置regus原创 2013-09-02 15:37:39 · 2122 阅读 · 0 评论 -
LR中如何通过数据导向(Data Wizard)来关联数据库获得数据库中的值
第一步:配置ODBCODBC是Windows提供的一个通用数据库连接方式。首先设置ODBC,打开Windows 控制面板下的管理工具,找到ODBC(数据原)如下图双击“数据源”,进入ODBC数据源管理界面,选择“系统DSN”标签 如下图点击“添加”按钮,弹出创建新数据原窗口,这里选择Sql Server,见下图点击“完成”按钮,弹出“创建到 Sql Server 的新数原创 2013-09-02 17:54:42 · 2321 阅读 · 0 评论 -
Lr参数和变量(一)
在VuGen中默认使用{}的字符串称之为参数,参数的最大有点是在LoadRunner函数中可以直接应用,例如Web_link("test","TEXT={param}",LAST);可以只用用参数来替换需要点击的链接的名称,并且在运行脚本的时候,系统会自动解析这个参数并将值读出。原创 2013-09-02 17:31:10 · 925 阅读 · 0 评论 -
Lr常量和变量(二)
本节主要学习二者的区别参数是可以直接在系统函数中应用的,绝大多数情况下都可以直接用参数替换掉函数中双引号内的数据。变量是属于C语言的,所以无法直接应用在系统函数中(注:可以使用lr_eval_string()函数解决此问题)。参数和变量的作用域参数是全局的,在脚本的任何一个Action中都可以使用;变量是局部的,如果跨Action调用会出现未声明的错误原创 2013-09-02 22:58:18 · 615 阅读 · 0 评论 -
LR关联
为了确保脚本回放的成功,我们需要获得服务器每次返回的动态SessionID,再将这个动态数据发回给服务器。而关联能够帮助我们将服务器返回的数据进行处理并保存为参数。 那么我们如何来获得服务器的返回数据呢?我么先来回顾一下VuGen是如何发出请求并如何接受返回的,原创 2013-09-02 23:19:09 · 456 阅读 · 0 评论 -
LR 一个用户循环自动回复所有帖子
Action(){ int i,num; char temp[255]; web_add_cookie(".ASPXANONYMOUS=-jjWcenUzgEkAAAAMTE3NzYxN2MtNzY2Yi00Y2U1LThiOTItZDYxNGJhM2ZiMmQzIetOgI48p78VlNnkq-Qh8xla2-nhIkhTfwCTothhyFQ1; DOMAIN=192.168原创 2013-09-09 11:50:15 · 1552 阅读 · 0 评论 -
lr_paramarr_random实例(关联参数随机取值)
关联参数取值时,若太多值,需要处理一下,介绍一个函数可直接随即取一个值,方便易理解,这是拿电脑报价做的一个简单的例子。Action(){int count;char * Value;char str[10];lr_think_time(1);web_reg_save_param("sid","LB="RB=&aId=100\">","Ord=All","转载 2013-09-09 08:41:08 · 1834 阅读 · 0 评论