性能测试的必备工具——LoadRunner

Jessica瑾妞

2017-01-04

在刚刚出版的作品《大型IT系统性能测试入门经典》中,我们提出了“亚健康软件”的概念,并提出了治疗“亚健康软件”的良药——全面性能测试方案。在性能测试工作中实施全面性能测试方案,无疑离不开强大的性能测试工具,而LoadRunner几乎成了性能测试的必备工具。

在实际工作中,很多使用LoadRunner的测试人员开发Vuser脚本时总会遇到这样或那样的问题,影响到性能测试工作的正常进展。而对于性能测试人员而言,Vuser脚本开发技能是一项基本功,需要在工作中长期修炼才能学有所成。

《LoadRunner虚拟用户高级开发指南》主要为了LoadRunner使用人员精通脚本开发而创作,目的是分享作者们的经验,使大家在更短的时间内成为LoadRunner的高手。

创作特色

《LoadRunner虚拟用户高级开发指南》从构思之初到创作完成,一直把“如何使LoadRunner性能测试人员成为Vuser 脚本开发高手”作为主要目标。因此本书既注重实战经验的推广,又注重开发技能的培养。在内容设计上,本书精选了最常使用的LoadRunner协议作为研究对象,结合相关的开发知识深度讲解如何学习各类Vuser脚本开发,从而达到触类旁通的学习效果。

本书在创作上具有以下的特色:

实践性强:本书讲解的知识大多数来源于作者们的一线工作经验,在讲解方式上非常注重从实际应用的角度进行探讨与分析,并提供大量的实际案例。例如,对于API函数绝对不是仅仅翻译帮助文档中的相关内容,而是实际中用到什么就重点讲解什么,而将查阅帮助文档这类基础工作留给读者自己来完成。通过这种训练方式,读者才能真正提高自己的脚本开发能力。

Vuser类型全面而典型:本书精选HTTP、Web Service、Socket、.NET、Java、Tuxedo、移动APP 相关的Vuser作为典型讲解对象,同时结合C 语言、DLL、C++、C#、面向对象等知识,基本覆盖到了各种架构的Vuser开发知识。掌握这些技能后,读者完全有能力去开发各类LoadRunner脚本。

丰富的实战案例:本书提供的案例非常丰富——既有一个个实用的小案例,又有内容全面的大案例,这些案例可以直接迁移到自己的测试环境中来使用。例如第3章的代理录制方式,很好地解决了一些客户端不能录制脚本的问题。读者可以按照这种方式开发移动APP、嵌入式平台客户端、Linux 客户端,以及一些C/S架构应用程序客户端的Vuser脚本。

大量实用的代码:代码丰富是本书非常突出的一大特点。本书既提供了大量Vuser开发过程中经常使用到的代码——这些代码可以在实际Vuser开发过程中直接使用,又提供了一些开发项目的源代码——使得读者可以深入了解一些产品的开发原理与实现过程。

广度与深度适中:本书范围非常广泛,既讲解了VuGen相关的Vuser开发知识,又讲解了C、C++、C#、.NET、Java等开发语言,以及相关IDE的使用知识。在内容深度上,本书尽量选择难度适中的例子,通过循序渐进的学习,使读者逐步掌握开发要领。

学习建议
对于开发基础薄弱的初学者,学习本书时可以分为两个阶段:

第一阶段:建立信心,打好基础。很多测试人员不是没有能力开发程序,而是畏惧自己动手去写程序。正是因为没有足够的信心,导致很多测试人员对程序开发这座大山望而却步,一直从事相对容易的功能测试工作。因此,对于想从事测试开发的工程师而言,首先应该突破心理上的畏惧,“勇敢”地挑战这一工作。

本阶段的具体做法就是动手调试书中的每一个小程序,特别强调的是千万别“只看不练”。看懂了不一定能自己写出来,写出来也不一定在自己的环境中运行正确。只有自己动手,才能为后续的学习打好基础。本书提供了大量的案例,只有通过学习与练习,才能实现建立信心、打好基础的目标。

在练习这些小例子的过程中,还应该注意查看VuGen 的函数帮助文档。通过学习帮助文档的内容,能达到举一反三的学习效果,从而做到活学活用。

第二阶段:巩固基础,提高技能。在写出小程序后,接下来的目标是形成一定的设计能力。这一阶段的主要任务是完成复杂案例程序的开发。对于复杂的案例程序,尽量不要完全照搬书中的代码,而是根据相关产品的功能,结合书中产品的设计思路,自己独立来完成代码——这是一个创造的过程。

例如,对于第6 章的示例程序CommandRunner,可以自己去查阅.NET 中相关Socket知识,完成其功能开发,最后再完成Vuser脚本的开发工作。或者可以先参考各个类的设计思路,然后自己实现具体的功能设计和程序开发工作。

这一阶段还应该做的就是博览群书——LoadRunner涉及的开发知识很多,因此需要借鉴大量的相关图书资料来提高自己,这也是成为高手的前提条件。

对于有一定经验的读者,可以直接开始进行第二阶段的学习

下面具体介绍各章的学习方法

第1章 虚拟用户开发基础。本章是全书的基础,掌握好本章的内容才能更好地学习后续内容。学习本章时,要重点掌握C 语言与Vuser脚本、Vuser开发常用函数、参数化功能详解三部分内容。Vuser开发常用函数部分重点学习字符串处理函数、消息处理函数部分。学习时应该认真调试相关函数,并查阅函数在VuGen函数帮助文档中的相关内容。

第2章 深入解析Web虚拟用户。本章重点学习HTTP协议基础、检查点、关联的相关知识,尤其是一些Web虚拟用户常用函数的用法。本章是开发Web虚拟用户的基础,建议读者学习时积极练习相关知识点的应用。

第3章 深入解析Web Services虚拟用户。本章重点学习Web Service脚本的三种开发方式,每种开发方法都要进行足够的练习。在实际工作中,这三种脚本开发方法通常需要逐一进行尝试,以确定哪种更适合当前系统的脚本开发,因此需要全部掌握。

第4章 深入解析Socket虚拟用户。对于本章内容的学习,应该首先掌握基本Socket虚拟用户函数的用法,这是开发Socket 协议Vuser的基础;其次应该深入掌握基于端口映射的代理方式录制脚本方法,对于很多不能直接录制脚本的应用,例如移动APP、基于Linux/Unix的客户端应用,通常采用这种方式来开发虚拟用户脚本。

第5章 深入解析动态链接库技术。在Visual C++中开发DLL,以及DLL 的高级应用一直是学习LoadRunner脚本开发的难点之一,本章循序渐进地讲解了这部分知识。读者学习时按照书中的步骤进行演练即可,如果有兴趣可以查阅相关书籍来掌握更多的知识。

第6章 深入开发.NET 虚拟用户。本章的重点学习内容是.NET 虚拟用户常用程序、C/S 应用开发与测试案例、视频播放性能测试案例等三部分。建议读者将常用程序部分建议看懂后,自己独立实现其功能——只有这样才可以得到很好的程序开发训练。同理,C/S 案例部分学习完成后,一定要自己开发出CommandRunner,这样才能建立系统的面向对象意识,设计出好的脚本程序。视频播放案例部分主要是学习解决问题的思路,读懂即可。

第7章 深入开发Java虚拟用户。本章主要讲解Java虚拟用户的开发知识,重点内容是Java虚拟用户的开发基础知识,以及如何调用开发人员已经实现的API。如果读者对这部分内容特别感兴趣,可以独立练习本节的案例,也可以去看一些专业的Java开发作品。

第8章 Tuxedo协议虚拟用户开发。本章重点学习Tuxedo协议虚拟用户开发的基础知识,掌握Tuxedo这一重要交易中间件的Vuser脚本开发方法。学习过程中,首先需要动手掌握Tuxedo域环境的搭建方法,然后练习Tuxedo两种缓冲区脚本的开发方法。

第9章 深入开发Mobile APP虚拟用户。本章重点学习Mobile APP的Vuser脚本开发方法。读者需要掌握模拟器和代理两种方式来开发Mobile APP的Vuser脚本。在实际应用中,这两种开发方式都会用到,因此全部需要认真掌握。

第10章 网络通信虚拟用户开发案例。本章主要为了扩充知识面而编写,重点讲解了一个基于UDP协议应用程序的Vuser脚本开发方法。本章既讲解了程序客户端与服务器的实现过程,又讲解了Vuser的开发方法,融合了前面各章节的诸多内容。读者学习时可以主动查阅相关资料来扩充自己的知识体系。如果对案例程序比较有兴趣,可以进行更深入的研究与开发。

读者对象

如果想成为LoadRunner高手,本书知识是必不可少的修炼内容。本书读者可以细分如下:

《大型IT 系统性能测试入门经典》《LoadRunner 性能测试指南》等《陈绍英作品系列》的读者:可以继续深入学习LoadRunner高级开发知识,以解决实际工作中遇到的各种Vuser脚本开发问题;

受各种Vuser开发问题困扰的测试工程师:很多Vuser脚本开发的问题都可以在本书中找到答案,甚至可以通过学习本书独辟蹊径来解决自己遇到的问题;

希望提高Vuser开发技能的测试工程师:学习本书可以大大提高测试工程师的Vuser脚本开发技能,有了本书就不必再四处搜寻资料或者去论坛上学习;

有LoadRunner经验的开发/测试工程师:本书中很多高级内容仍然值得有经验的工程师来学习,可以帮助其开阔眼界,提高开发方面的技能;

具备一定开发基础的开发/测试工程师:即使没有LoadRunner使用经验,仍然可以通过本书学习LoadRunner虚拟用户开发。有了开发基础可以大大加快本书的学习速度;

准备成为性能测试工程师的技术人员:希望向性能测试领域发展的测试工程师,可以将本书与《LoadRunner性能测试实战》一书同步来学习。

关于本书

全书共分为10 章。第1,2,4,5,6,7 章主要由陈绍英创作完成,第3,8,9,11章主要由周志龙创作完成,第10 章主要由冯艳硕创作完成。

各章主要内容如下:

第1章 虚拟用户开发基础。本章首先介绍了Vuser的一些背景知识,接着深入探讨了Vuser开发的必备知识:C 语言基础、Vuser开发常用函数、参数化。C 语言部分主要介绍了数组、指针、字符串、printf 输出函数、分支与循环语句、Vuser开发中常用C 函数、文件访问等内容;Vuser开发常用函数主要介绍了用户事务函数、字符串处理函数、消息处理函数、脚本信息函数、错误处理函数等内容;参数化部分深入探讨了参数化基础知识、文件类型参数等内容,并结合实际案例讲解了参数化的具体应用。

第2章 深入解析Web虚拟用户。本章首先讲解了HTTP协议基础、Cookie 应用等基础知识,接着讲解了检查点、关联等常用Vuser开发技术;最后讲解了Web类脚本开发常用函数的用法以及常见问题的处理方式。

第3章 深入解析Web Services虚拟用户。本章重点讲解了Web Service脚本的三种常用开发方式:web_service_call模式、soap_request模式、web_custom_request模式。通过依次尝试这三种模式,可以解决大部分Web Service应用的脚本开发问题。

第4章 深入解析Socket虚拟用户。本章首先讲解了Socket虚拟用户常用函数的用法,重点介绍了基本函数、关联函数、超时函数、Buffer函数、转换函数;接着以基于Socket的网络应用程序WinSocketSample 作为实战测试对象,讲解了如何使用代理方式来录制基于Socket 应用的用户操作以生成Vuser脚本,其中的代理方式分别介绍了单机代理和多机代理两种方式,并介绍了如何对生成的脚本进行参数化;然后分享了一些项目中的实战经验;最后介绍了一个通过脚本日志定位性能问题的案例,向读者展示了如何在实际中灵活使用所学的知识来发现性能问题。

第5章 深入解析动态链接库技术。本章详细探讨了动态链接库这一在LoadRunner中经常用到的技术,尤其深入探讨了DLL在Visual C++中进行使用的相关知识。本章包含DLL的基本使用、Visual C++中创建与调用DLL、函数名称改编、C++类的导出与封装、MFC DLL、DLLMain 函数等知识。

第6章 深入开发.NET虚拟用户。本章前半部分全面系统地介绍了.NET虚拟用户基础知识,包含.NET虚拟用户适用范围及安装配置、创建.NET虚拟用户项目、面向对象开
发基础、常用.NET程序等四部分内容。本章后半部分介绍了一个C/S 架构应用的Vuser脚本开发案例,通过深入了解测试对象CommandRunner的设计与实现过程,使读者掌握这类Vuser脚本开发的基本方法。

第7章 深入开发Java虚拟用户。本章首先介绍了Java虚拟用户基础知识;接着介绍了如何在Eclipse创建与编译Java类文件以及如何在Java虚拟用户中调用编译好的类文件;然后分享了一些项目中的实战经验;最后通过并发下载文件、信用卡审批、脚本数量精简等案例讲解如何在实际中使用Java虚拟用户。

第8章 Tuxedo协议虚拟用户开发。本章详细介绍Tuxedo协议虚拟用户开发的基础知识:首先介绍了Tuxedo 域环境的搭建方法;接着介绍了Tuxedo中CARRAY类型、FML(32)类型两种缓冲区脚本的开发方法。通过这些基础知识的学习,读者可以掌握Tuxedo这一重要交易中间件的Vuser脚本开发方法。

第9章 深入开发Mobile APP虚拟用户。本章探讨了Mobile APP 的Vuser脚本开发方法,重点介绍了模拟器和代理两种开发脚本的方式。目前,Mobile APP得到了空前的推广,因此读者需要系统掌握Mobile APP虚拟用户的开发方法。

第10章 网络通信虚拟用户开发案例。本章重点讲解了一个基于UDP协议应用程序的Vuser 脚本开发方法。首先讲解TCP 与UPD协议的相关知识,接着介绍案例协议的相关实现方式,然后讲解服务器与客户端的设计与实现,最后介绍了Vuser脚本的设计与开发方法。通过本案例的学习,读者可以系统掌握网络通信类应用的Vuser脚本开发方法。

致谢

感谢上海漫索计算机科技有限公司总经理林锐博士,林老师在我写作第一本作品《Web性能测试实战》时给了我重要的指导意见,并将这本作品推荐到电子工业出版社,从此我和写作结下了不解之缘;

感谢电子工业出版社的郭立、孙学瑛两位老师,她们对本书的出版提供了非常大的支持;

感谢本书的主要合作者周志龙、金成姬、刘蕙兰、刘建华,本书的写作过程占用了各位大量的休息时间;

感谢我的朋友冯艳硕,他具有丰富的开发经验,他的参与使本书内容更加丰富;

感谢我的朋友范本银,他参与了第2 章HTTP 协议等相关内容的写作;

感谢民生银行合作公司的团队成员,特别感谢路来强、雷宏波等人。在团队进行项目攻坚的过程中,我们收获了很多创意,这些创意、解决方案集腋成裘,成为本书中用来分享的实战经验;感谢电子工业出版社为本书辛勤付出的所有朋友们;

特别要感谢各位家属们的支持。尤其是各位小朋友,写作占用了大量本来可以陪他们的时间。

读者评论

相关博文

  • 社区使用反馈专区

    陈晓猛 2016-10-04

    尊敬的博文视点用户您好: 欢迎您访问本站,您在本站点访问过程中遇到任何问题,均可以在本页留言,我们会根据您的意见和建议,对网站进行不断的优化和改进,给您带来更好的访问体验! 同时,您被采纳的意见和建议,管理员也会赠送您相应的积分...

    陈晓猛 2016-10-04
    5437 739 3 7
  • 迎战“双12”!《Unity3D实战核心技术详解》独家预售开启!

    陈晓猛 2016-12-05

    时隔一周,让大家时刻挂念的《Unity3D实战核心技术详解》终于开放预售啦! 这本书不仅满足了很多年轻人的学习欲望,并且与实际开发相结合,能够解决工作中真实遇到的问题。预售期间优惠多多,实在不容错过! Unity 3D实战核心技术详解 ...

    陈晓猛 2016-12-05
    3302 36 0 1
  • czk 2017-07-29
    5874 28 0 1