61阅读

51testing软件测试论坛-LoadRunner学习笔记 - charmer - 51Testing软件测试网 - P...

发布时间:2017-12-28 所属栏目:工作经验

一 : LoadRunner学习笔记 - charmer - 51Testing软件测试网 - P...

事务(Transaction)是这样一个点,我们为了衡量某个action的性能,需要在action的开始和结束位置插入这样一个范围,这就定义了一个transaction,LoadRunner 运行到该事务的开始点时,LoadRunner 就会开始计时,直到运行到该事务的结束点,计时结束。这个事务的运行时间在结果中会有反映。所以 LR 的事务添加操作就是把测试所需要关注的操作定义成事务告诉 LR,这个是我想要重点检测性能的操作。LR就会在运行过程中记录事务内操作的响应事件等性能

数据。并在 Analysis中以报告的形式给出统计结果。

lr_start_transaction(”SubmitBookData”);

/*中间代码部分*/

lr_end_transaction(”SubmitBookData”, LR_AUTO);

2.1.2 集合点(Rendezvous)

集合点:是一个并发访问的点,在测试计划中,可能会要求系统能够承受1000人同时提交数据,在LoadRunner中可以通过在提交数据操作前面加入集合点,这样当虚拟用户运行到提交数据的集合点时,LoadRunner 就会检查同时有多少用户运行到集合点,如果不到1000人,LoadRunner就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到1000 人时,LoadRunner 命令1000 人同时去提交数据,并发访问的目的。

注意:集合点经常和事务结合起来使用,常放在事务的前面,集合点只能插入到Action 部分,vuser_init和vuser_end 中不能插入集合点。集合点函数如下,参数不能加空格:lr_rendezvous(”SumitQueryData”); 加入集合点之后,在后面运行过程中可以看到VU的状态,会等待集合。

2.1.4 IP Spoofer(IP 欺骗)

LoadRunner允许运行的虚拟用户使用不同的IP 访问同一网站,这种技术称为“IP 欺骗”。

启用该选项后,场景中运行的虚拟用户将模拟从不同的IP 地址发送请求。该选项非常的有用。注意:IP Spoofer 在连接Load Generators 之前启用。要使用IP 欺骗,各个Load Generator 机器必须使用固定的IP,不能使用动态IP(即DHCP)。

IP Wizard工具,添加一个局域网内的IP段。添加后重启,在Win2k下使用Ipconfig/all查看到很多虚拟的IP,最后要在Controller里面选择enable ip spoofer.

2.1.5(Text/Image)检查和 contents check 点

对于查询类的脚本,一定要添加检查点,以保证在测试时结果的正确性.因为LR只要检测到网页的响应,就认为是pass而并不管当前网页内容的正确性.在进行压力测试时,为了检查Web服务器返回的网页是否正确,VuGen允许我们插入Text/Imag 检查点,这些检查点验证网页上是否存在指定的Text或者Image,还可以测试在比较大的压力测试环境中,被测的网站功能是否保持正确。检查点的含义和WinRunner 中的检查点功能基本上一致,这里就不再说了.

比如登录,我要测试200人同时登录,

但是我的login.jsp里面没有正确的关闭数据库的连接,

导致登录100人后,建立了100个数据库连接,

第101人一个人登录的时候,由于超出数据库连接的最大数,

所以,jsp程序抛出了一个数据库异常。

但是页面的走向是正确的,所以loadrunner会认为程序是正确执行的,但是事实却并非如此。

2.1.6 LR 脚本复用问题

LR的测试脚本有很好的复用性,参数化后的脚本,在应用没什么大的变化的情况下,一直是可以用的。甚至你在A服务器录制的脚本,如果做测试的时候,需要转移到B服务器上,你只需要用查找替换的功能将A服务器的IP地址换成B服务

2.1.7 理解 Correlation(关联)

关联是用来解决脚本中存在的动态数据问题的.在7.8中,当你回放一次后,LR会自动录找你录制的时候和回放时候的差别,找出动态数据,并作成参数。

理解web_reg_save_param函数,

int web_reg_save_param (const char *ParamName, , LAST);

第一部分:参数名字,用双引号括起,逗号分开;

第二部分:List of Attributes,包括:LB、RB、RelFrameID、Ord、Search、SaveOffset、

SaveLen等,

第三部分:LAST,结束标志。

左边界,右边界到底是个什么概念?

LB是左边界,要查找的字符串左面的边界值,即位于查找字符串的最左边的字符串,RB是右边界,要查找的字符串右面的边界值,即位于查找字符串的最右边的字符串,比如说吧,程

Search是指查找范围,就是说在哪里查找这些值,可以取这样几个值,我们一般设为ALL,

Body等即可。

Headers (Search only the headers),

Body (search only Body data, not headers),

Noresource (search only the html body, excluding all headers and resources),

ALL (search Body and headers). The default value is ALL.

RelFrameID: The hierarchy level of the HTML page relative to the requested URL.

一般取1

ORD: This parameter, also known as Instance, indicates the ordinal or instance of

the match. 一般取 1

一般把系统的那些都关掉,定义自己的,只是有的时候,它不能自动关联,就

干脆手工作了。需要关联的地方:一般是在有主键,不允许记录重复,和一些主程序中传递过来的参数,在后面要用到等情况才使用关联的,你可以先执行一遍,如果有些地方不允许重复,参数值无效,就会出错的,根据错误提示你可以判断出来,就知道需要关联了。一般需要关联的不多,我现在遇到的就是进程号,以及表的主键。

以下是一个例子讲解LR,呵呵!

2. 1. 8 以录制 Web(Http/Html)协议为例讲述一下 LR 的脚本的录制

LR的脚本是C语言代码,LR有自己的一整套函数接口,可以供外部调用,在VUGen里面敲Lr_就可以看到了。Web(Http/Html)脚本本身分INIT,ACTION,END三部分,各部分的解释:INIT部分可以理解为初始部分,ACTION可以理解为事务部分,也是测试的主体,END是退出结束。重复的时候,仅重复action部分。我们一般把登录部分放在init,退出放到end,只会执行一次,或者有的时候,各部分反复的次数不一样,分成多个action,可以单独设定反复次数。(如果需要在登陆操作设集合点,那么登陆操作也要放到Action 中,因为vuser_init 中不能添加集合点)

脚本里面有 2 个函数,解释一下:1.几个函数的解释:

1) int web_url (const char *Name, const char * url,

[EXTRARES, ,] LAST ;

这个函数 load 指定的web 页面 . *Name:页面的name; url:页面的url,Resource:指示the URL 是否是一个资源。0,不是,1, RecContentType:录制脚本过程中,Header 响应的类型,e.g. text/html,

application/x- javascrīpt Referer – 参考 web 页的 the URL Snapshot - snapshot 文件名(扩展名inf), correlation 的时候要的。 Mode – 录制的级别: HTML or HTTP Last- 属性列表的结束标志。

名词方面的解释   迭代(Iterate)设计,或者我们称之为增量(Incremental)设计的思想和XP提倡的Evolutionary Design有异曲同工之妙。注意:1、 参数类型:在创建参数的时候,我选择了参数类型为File。参数类型共有9 种,现在来简单介绍一下所有的参数类型以及意义。1.1、 DateTime:在需要输入日期/时间的地方,可以用 DateTime 类型来替代。其属性设置也很简单,选择一种格式即可。当然也可以定制格式。1.2、 Group Name:很少用到。在实际运行中,LoadRunner 使用该虚拟用户所在的Vuser Group 来代替。但是在 VuGen 中运行时,Group Name将会是None。1.3、 Load Generator Name :在实际运行中, LoadRunner 使用该虚拟用户所 在LoadGenerator 的机器名来代替。1.4、 Iteration Number :在实际运行中,LoadRunner 使用该测试脚本当前循环的次数来代替。1.5、 Random Number:随机数。很简单。在属性设置中可以设置产生随机数的范围。1.6、 Unique Number:唯一的数。在属性设置中可以设置第一个数以及递增的数的大小。注意:使用该参数类型必须注意可以接受的最大数。例如:某个文本框能接受的最大数为99。当使用该参数类型时,设置第一个数为 1,递增的数为1,但100 个虚拟用户同时运行时,第100 个虚拟用户输入的将是 100,这样脚本运行将会出错。这里说的递增意思是各个用户取第一个值的递增数,每个用户相邻的两次循环之间的差值为 1。举例说明:假如起始数为 1,递增为 5,那么第一个用户第一次循环取值 1,第二次循环取值 2;第二个用户第一次循环取值为 6,第二次为 7;依次类推。1.7、 Vuser ID:设置比较简单。在实际运行中,LoadRunner 使用该虚拟用户的 ID 来代替,该 ID 是由 Controller 来控制的。但是在 VuGen 中运行时,Vuser ID 将会是 –1。1.8、 File:需要在属性设置中编辑文件,添加内容,也可以从现成的数据库中取数据1.9、 User Defined Function:从用户开发的 dll 文件提取数据。

1、 负载生成器:

负载生成器是用来模拟生成虚拟用户的。

根据经验,每生成一个虚拟用户,需要花费负载生成器大约 2M 的内存空间。通常运行 controller的主机很少用作负载生成器。负载生成器的工作多由其他装有 LR Agent的PC 机来担任。如果负载生成器内存的使用率大于了 70%,负载生成器就会变成系统的瓶颈,导致性能测试成绩下降。这种问题需要添加负载生成器来解决。一台 512M内存的 PC 机大约可以生成 80 个左右的负载,而一台 256M 内存的 PC 机大约可以生成50到 60 个左右的负载。

2、 运行[时间]在加压完成后:

当“运行[时间]在加压完成后”设置了以后,原本定义的运行时设置中的迭代次数就失效了。或者说加压 “持续时间”的优先级要高于“运行时设置”。比如当一个脚本设置了运行时设置中的迭代次数为 10 次,在“持续时间”中设置加压持续时间为 30分钟。当真正运行时,脚本迭代10 次后仅花费了20分钟,但是持续时间设了30 分钟,因此它不能停下来,还会继续迭代。到最后脚本实际迭代的次数就不止 10次了。

LR 对服务器资源的监视

LR只能监视它支持的服务器的资源,它支持大部分常见的服务器。

System Resource:包括windows平台,Unix平台等

Web Server:包括Apache、IIS、Sun的iplanet等

Application server:包括Weblogic、WebSphere等

Database server:包括DB2,Oracle,Sql server,Sybase等

Java: ejb,J2ee等,需要一个ejbdetector.jar文件

1.对Windows(Win2k server)的监视:

对windows的监视相对比较简单,监视前首先需要用有管理员权限的帐号连接被监

server,例如:net useqa-test/user:donny ,输入密码。然后就可以添加计数器,

比较常用的计数器有:

Memory:Available Mbytes 物理内存的可用数(单位 Mbytes)至少要有10% 的物理内存值

Processor:%Processor Time CPU 使用率。这是查看处理器饱和状况的最佳计数器。显示所有 CPU 的线程处理时间。如果一个或多个处理器的该数值持续超过 90%,则表示此测试的负载对于目前的硬件过于沉重。为多处理器服务器添加该计数器的 0 到 x 个实例。

Processor Queue Length:是指处理列队中的线程数,小于2。处理器瓶颈会导致该值持续大于2。

Context Switches/sec:如果切换次数到5000*CPU个数和10000*CPU个数中,说明它忙于切换线程

Network Interface:Bytes Total/sec 为发送和接收字节的速率,包括帧字符在内。判断网络连接速度是否是瓶颈,可以用该计数器的值和目前网络的带宽比较。

SQL Server2000:%Processor Time,CPU 使用率

General Statistics,Logins/sec,这是每秒登录到 SQL Server 的计数。

SQL Statistics: Batch Requests/sec,每秒收到的 Transact-SQL 命令批数。这一统计信息受所有约束(如I/O、用户数、高速缓存大小、请求每秒收到的 Transact-SQL 命令批数。这一统计信息受所有约束(如I/O、用户数、高速缓存大小、请求的复杂程度等)影响。

批请求数值高意味着吞吐量很好。

2.对Unix(Linux等)的监视,需要配置相应的服务器端,可以查看帮助文件,这里就只举

一个例子了。

1) LoadRunner 如何监控Apache,需要修改apache的配置文件.

SetHandler server-status

Order deny,allow

Allow from all

Allow from .your-

把这节加在里面, restart apache即可。

页面分解

如果某个transaction的时间过长,为了分析问题出在哪里?就可以利用页面分解了,它可

以把每个页面分解成:

DNS解析时间:浏览器访问一个网站的时候,一般用的是域名,需要dns服务器把这个域名解析为IP,这个过程就是域名解析时间,如果我们在局域网内直接使用IP访问的话,就没有这个时间了。

Connection:解析出Web Server 的IP地址后,浏览器请求被送到了Web Server,然后浏览器和Web Server 之间需要建立一个初始化HTTP连接,服务器端需要做2件事:一是接收请求,二是分配进程,建立该连接的过程就是connection时间。

First Buffer:建立连接后,从Web Server 发出第一个数据包,经过网络传输到客户端,浏览器成功接受到第一字节的时间就是First Buffer。这个度量时间不仅可以表示Web Server 的延迟时间,还可以表示出网络的反应时间。

Receive:从浏览器接收到第一个字节起,直到成功收到最后一个字节,下载完成止,这段时间就是receive时间。

其他的时间还有SSL Handshaking(SSL 握手协议,用到该协议的页面比较少)、

ClientTime(请求在客户端浏览器延迟的时间,可能是由于客户端浏览器的think time 或者客户端其他方面引起的延迟)、Error Time(从发送了一个HTTP 请求,到Web Server发送回一个HTTP 错误信息,需要的时间)

为了确认问题缘由到底是服务器还是网络,选择“Time to First Buffer(缓冲器) Breakdown”发现network时间比Server时间要高的多,从而确定问题是network引起的。

“www.61k.com”

未完,待续请关注比比读小说网微信公众号

二 : 51Testing软件测试论坛 - [软件测试新手上路]

  《软件测试》

作者:(美)Ron Patton

译者:周予滨 姚静

出版社:机械工业出版社

原出版社: SAMS

我所见过的最好最经典的软件测试入门书,有一个别名叫“软件测试的本质”。书中没有讨论太多的软件测试理论,只包含了一部分常用的、基本的知识。从什么是软件测试、为什么要作软件测试开始,逐步引入基本的和高级的测试技术和方法,然后开始把读者引入实际工作中,讲述了一般的测试过程中要经历哪些阶段,要作哪些具体的工作,如何开展测试工作,如何找到缺陷并提交缺陷。甚至还包括了对测试人员的职业指导。建议所有的测试人员都读一读。



《软件测试》

作者:[美]Paul C.Jorgensen

译者:韩柯 杜旭涛

出版社:机械工业出版社

原出版社: CRC

另一本同名的经典测试书籍。如果说上面那本的目的是快速的将你引入测试的殿堂,或者说作为一本“快速职业培训”的话,这本则是更深入的介绍了软件测试的基本知识和方法。其中重点介绍了黑盒测试(功能性测试)、白盒测试(结构性测试)的技术和方法,以及如何开展集成测试和系统测试工作。另外,书中还包含了对于面向对象测试的内容。这本书可以作为夯实测试基础的教材,建议阅读。



《Automated Software Testing--Introduction,Management and Performance》

作者:[美]Elfriede Dustin等著

出版社:清华大学出版社

这本书虽然在国内也有中文版,我一开始看的也是中文版,不过限于中文版的质量,这里还是推荐有能力的朋友看影印版吧。

虽然书名中大主题是“自动化软件测试”,但是这本书中介绍的更多的并不是自动化测试的具体实现,而是侧重于测试过程和测试管理方面的内容,这也是因为自动化软件测试工作的开展必须依赖于一个完善的测试过程吧。

从某个角度来看,上述的三本书从测试技术、方法和测试过程几个方面都进行了详细的论述,可以作为逐步深入的“测试学习路线图”,先看第一本入门,然后通过第二本强化对测试方法和技术的理解,然后通过第三本来更深入、全面的理解测试过程。其实书不在多,如果但作为基础学习,找到基本合适的,然后反复的阅读、研究、实践,就应该足够了。



《软件测试自动化》

作者:Daniel J.Mosley, Bruce A.Posey/著

译者:邓波 黄丽娟 曹青春等/译

出版社:机械工业出版社

可以把这本书当做第一本书的延续——不过我指的是作用和风格,作者当然不是同一个人了——你可以把它理解为“软件测试自动化”方面的经典入门书。作者从实际工作的角度对自动化测试进行了详细的论述,包括应该何时开始自动化、测试自动化同软件开发过程中其他工作的关系,以及测试自动化工作开展的过程。还介绍了“自动化测试框架”。不过这本书最吸引我的,还并不是它将我轻松的引入了自动化测试的世界,它还在每个章节的后面提供了很多链接和文档资料,大都可以在网上搜索到和打开。配合这些资料的学习,更深一步的理解了自动化测试的本质。

建议准备学习自动化测试和已经开始尝试自动化测试的朋友阅读多几遍。



《有效软件测试》

作者:[美]Elfriede Dustin/著

译者:新语/译

出版社:清华大学出版社

虽然这本书国内也出了影印版,但是个人感觉中文版的质量还是不错的,从中也可以看出译者有着很深的软件工程实践功底。作为一本实践经验性的著作,书中涵盖了从测试过程到测试管理,从测试方法到测试技术,以及自动化测试方面的内容,所以要求读者应当具有相当的软件测试实际工作经验,否则只有理论知识恐怕也很难理解其中的一些做法,“知其然”却无法“知其所以然”。建议先看过上面介绍的四本书(或者至少前三本)并有了一些实际测试的经验以后,再来阅读这本书效果会好一些。你会在阅读的过程中发现,原来很多测试工作开展时遇到的难题可以这样解决,原来测试工作可以通过这样来提高效率……

虽然这本书的内容并没有特别的依赖于某些测试工具,不过看的出作者和译者的工作大都是基于RUP的,所以如果读者有这方面的了解和实践经验,阅读起来效果会更好一些。

三 : 变革2017——博为峰51Testing全面优化软件测试培训课程体

  导语:随着移动互联网的迅猛发展,企业对于移动APP测试人才的需求正在不断加大。同时,接口测试能力、敏捷测试流程的掌握程度也逐渐成为企业考核人才的重要一环。

  2017年鸡年春节刚刚过去,国内软件测试培训机构领导者——博为峰51Testing(股票代码:836392)对外宣布,将对现有的软件测试培训课程体系进行全面优化和升级,力争打造行业最前沿、最符合当前企业实际需求的人才培养课程体系,助力学员更好、更快的掌握技能和高薪就业。

  自2004年成立,博为峰51Testing一步一个脚印,经过十多年的努力和发展,先后在上海、北京、深圳、成都、南京、西安、武汉、合肥、杭州成立了13个培训中心和1个招生中心,软件测试就业培训项目累计开班近500多期,为1500多家国内外合作企业输送了近30000余名软件测试人才,学员平均就业率高达99.5%,一直居于同业前列,数千名学员已晋升为测试总监、项目经理,成为中国软件测试领域的中坚力量。

  据了解,博为峰51Testing软件测试培训课程体系本轮优化的核心内容主要有4个:学员必须掌握的自动化测试课程提前;强化移动APP测试和接口测试课程;在实战项目中引入敏捷测试流程;学员找工作前的学习时间压缩到2个月左右。具体到课程设置和教学计划,主要做了以下调整:

  一、课程设置

  学习第一阶段的编程语言课程加入python

  学习第二阶段的项目实战加入独立的移动app测试课程,并将自动化测试课程提前到学习第二阶段,同时两个实战项目分别采用规范流程和敏捷流程,规范流程项目既包含手工测试也包含自动化测试

  学习第三阶段的重点放在接口测试上

软件测试课程

  二、教学计划

  为了保证学员找工作前的学习时间尽量压缩在2个月左右,本着高效、高质的理念,博为峰51Testing重新编制了新的教学计划,具体为:

  预科课程一周3天课,6天课程预计持续2周

  第一阶段课程为4+1(4天上课,1天自习),16天课预计持续4周

  第二阶段课程为5+1(5天上课,1天自习),22天课预计持续4周

  第三阶段课程为2(利用周末时间上课),8天课程持续4周

  (注:前两个阶段课程学习期间,除了白天上课,学员还需要强制参加1-2个小时的晚自习,并完成该天课程内容的总结和整理,提交手写纸质内容。)

本文标题:51testing软件测试论坛-LoadRunner学习笔记 - charmer - 51Testing软件测试网 - P...
本文地址: http://www.61k.com/1151827.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1