很多使用LoadRunner的测试人员在开发Vuser脚本时总会碰到这样或那样的问题,影响了性能测试工作的正常开展。作为测试人员,Vuser脚本的开发能力应该是一项基本功。但实际情况是,很多测试人员在这方面的能力很弱,甚至因此影响了自己的职业发展——仅仅能够录制与修改脚本的测试人员是没有太大竞争力的。.
在《LoadRunner性能测试实战》一书出版后,笔者收到了很多读者的反馈:希望在掌握LoadRunner的使用基础上,能够深入学习LoadRunner的Vuser脚本开发知识,以提高自己的性能测试水平。本书正是基于这一目的而创作的。
本书的创作特色
本书从构思到创作完成,一直把“如何使性能测试人员掌握Vuser脚本的开发”作为主要问题来解决。因此,本书既注重经验的推广,又注重技能的培养。在写作风格上,本书没有过度追求全面,而是精选了最常使用的Vuser作为学习对象,结合相关的开发知识来讲解如何学习Vuser脚本开发。本书在创作上具有以下特色。
实践性强:本书讲解的知识大多数来源于作者的工作经验。在讲解方式上非常注重实践,主要从实际应用的角度进行探讨。例如,对于API函数绝对不是简单的翻译帮助中的相关内容,而是实际中用到什么就重点讲解什么,而将查阅帮助的工作留给读者自己来完成。只有通过这种讲解与学习方式,读者才能真正提高自己的开发能力。
Vuser类型非常典型:本书精选了Web、Socket、.NET、Java四类相关的Vuser作为典型讲解对象;同时结合C语言、DLL、C++、C#、面向对象等知识,基本覆盖了C/S、B/S架构Vuser开发各个领域的知识。掌握这些知识后,读者完全有能力去开发各类LoadRunner虚拟用户脚本。
丰富的实战案例:本书提供的案例非常丰富——既有一个个实用的小案例,又有内容全面的大案例,这些案例可以直接迁移到自己的测试环境中来使用。例如第3章的代理录制方式,很好地解决了一些客户端不能录制脚本的问题,可以按照这种方式开发嵌入式平台客户端、Linux客户端及一些C/S架构应用程序客户端的Vuser脚本。
大量实用的代码:代码丰富是本书非常突出的一大特点。本书既提供了大量Vuser开发过程中经常使用到的代码——这些代码可以在实际Vuser开发过程中直接使用,又提供了一些开发项目的源代码——使得读者可以深入了解一些产品的开发原理与实现过程。
广度与深度适中:本书范围非常广泛,既讲解了VuGen相关的Vuser开发知识,又讲解了C、C++、C#、.NET、Java等开发语言及相关IDE的使用知识;在深度上,本书尽量选择难度适中的例子,通过循序渐进的学习,使读者逐步掌握开发要领。
本书的学习建议
对于没有开发基础的初学者,学习本书时应该分为两个阶段。
第一阶段:建立信心,打好基础。很多测试人员不是没有能力写出程序,多数情况下是畏惧自己去写程序。正是没有足够的信心,导致很多测试人员一直从事相对简单的功能测试工作,一直对程序开发这座大山望而却步。因此,对于想从事测试开发的工程师而言,首先应该突破心理上的畏惧,“勇敢”地挑战这一工作。
第一阶段的具体做法就是动手调试书中的每一个小程序,特别强调的是千万别“只看不练”。看懂了不一定能自己写出来,写出来也不一定在自己的环境中运行正确。只有自己动手,才能为后续的学习打好基础。本书提供了大量的案例,只有通过学习与练习,才能实现建立信心、打好基础的目标。
在练习这些小例子的过程中,还应该注意查看VuGen的函数帮助文档。通过学习帮助文档,能达到举一反三的学习效果,这样学习才能使掌握的知识更加灵活。
第二阶段:巩固基础,提高技能。在写出小程序后,接下来的目标是形成一定的设计能力。这一阶段的主要任务是完成复杂案例的开发。对于复杂的案例,尽量不要完全照搬书中的代码,而应根据相关产品的功能,结合书中产品的设计思路,自己独立来完成代码——这是一个创造的过程。
例如对于第5章的示例程序CommandRunner,可以自己去查阅.NET中相关的Socket知识,独立实现其功能,然后再实现Vuser脚本的开发工作。或者,也可以先参考各个类的设计思路,然后自己实现具体代码。
这一阶段还应该做的就是博览群书——LoadRunner涉及的开发知识很多,因此须要借鉴大量的图书资料,这也是成为高手的前提条件。
对于有一定经验的读者,可以重点进行第二阶段的学习。
下面具体介绍各章的学习方法。
第1章 虚拟用户开发基础。本章是全书的基础,只有掌握好本章的内容,才能更好地学习后续章节的内容。学习本章时,要重点掌握C语言与Vuser脚本、Vuser开发常用函数、参数化3部分内容。Vuser开发常用函数部分重点学习字符串处理函数、消息处理函数。学习时应该认真调试相关函数,并查阅函数在VuGen函数帮助文档中的相关内容。
.第2章 深入Web虚拟用户。本章重点学习HTTP协议基础、检查点、关联的相关知识。这些是开发Web虚拟用户的基础,建议读者学习时积极练习相关知识点的应用。
第3章 深入Windows Sockets虚拟用户。对于本章内容的学习,首先应该掌握基本Socket虚拟用户函数的用法;其次应该掌握基于端口映射的代理方式录制脚本的方法,因为很多不能直接录制或基于Linux/Unix的客户端应用,通常采用这种方式来开发虚拟用户脚本。
第4章 深入Visual C++动态链接库。在Visual C++中开发DLL及DLL的高级应用一直是学习的难点。本章循序渐进地讲解了这部分知识。读者在学习时按照书中的步骤进行演练即可,如果有兴趣可以查阅相关书籍。
第5章 深入.NET虚拟用户。本章的重点学习内容是.NET虚拟用户常用程序、C/S应用开发与测试案例、视频播放性能测试案例3部分。常用程序部分建议看懂后脱离书本来实现其功能——只有这样才可以得到很好的锻炼;C/S案例部分建议一定要自己开发出CommandRunner,这样才能建立面向对象意识,设计出好的脚本程序;视频播放案例部分读懂即可,主要是学习解决问题的思路。
第6章 深入Java虚拟用户。本章主要讲解Java虚拟用户的开发知识,重点内容是Java虚拟用户的开发流程及如何调用开发人员已经实现的API。如果读者对这部分内容特别感兴趣,可以自己练习本节的案例。
第7章 网络通信虚拟用户开发案例。本章主要是为了扩充知识面而编写的,重点讲解了一个基于UDP协议应用程序的Vuser脚本开发方法。本章既讲解了程序客户端与服务器的实现过程,又讲解了Vuser的开发方法,融合了前面章节的很多内容。建议学习时应积极查阅资料,如果自己对案例程序有兴趣,仍然可以进行研究与开发。
本书的读者对象..
《LoadRunner性能测试实战》一书的读者:可以继续深入学习LoadRunner高级开发知识,以解决实际工作中遇到的各种Vuser脚本开发问题。
受各种Vuser开发问题困扰的测试工程师:很多Vuser脚本开发的问题都可以在本书中找到答案,甚至可以通过学习本书独辟蹊径来解决自己遇到的问题。
希望提高Vuser开发技能的测试工程师:学习本书可以大大提高测试工程师的Vuser脚本开发技能,有了本书就不必再四处搜寻资料或去论坛上学习了。
有LoadRunner经验的开发/测试工程师:本书中很多高级内容仍然值得有经验的工程师来学习,可以帮助其开阔眼界,提高开发方面的技能。
具备一定开发基础的开发/测试工程师:即使没有LoadRunner使用经验,仍然可以通过本书学习LoadRunner虚拟用户开发。有了开发基础可以大大加快本书的学习速度。
准备成为性能测试工程师的技术人员:希望向性能测试领域发展的测试工程师,可以将本书与《LoadRunner性能测试实战》一书同步来学习。
关于本书的内容
全书共分为7章,前6章由陈绍英与金成姬共同创作完成,第7章由冯艳硕创作完成。各章主要内容如下。
第1章 虚拟用户开发基础。本章首先介绍了Vuser的一些背景知识,接着深入探讨了Vuser开发的必备知识:C语言基础、Vuser开发常用函数、参数化。
第2章 深入Web虚拟用户。本章重点讲解了HTTP协议、检查点与关联;最后讲解了一些特殊函数的用法及一些常见问题的处理方式。
第3章 深入Windows Sockets虚拟用户。本章首先讲解了Socket虚拟用户常用函数的用法;接着以百度网站为例介绍了代理方式录制脚本的方法;最后以基于Socket的网络应用程序WinSocketSample作为实战案例,讲解了如何使用代理方式来录制基于Socket应用的用户操作以生成Vuser脚本。
第4章 深入Visual C++动态链接库。本章详细探讨了动态链接库在LoadRunner中经常用到的技术,尤其深入探讨了DLL在Visual C++中进行使用的相关知识。本章包含DLL的基本使用、Visual C++中创建与调用DLL、函数名称改编、C++类的导出与封装、MFC DLL、DLLMain函数等知识点。
第5章 深入.NET虚拟用户。本章第一部分内容是.NET虚拟用户基础知识,包含.NET虚拟用户适用范围及安装配置、创建.NET虚拟用户项目、面向对象开发基础、常用.NET程序四部分内容;第二部分是案例,首先介绍了一个C/S测试案例,接着深入探讨了一个网站视频的播放性能测试案例。
第6章 深入Java虚拟用户。本章首先介绍了Java虚拟用户的适用范围和环境配置;然后介绍了Java虚拟用户脚本开发的基础知识;最后结合Java算法测试案例来讲解如何在实际中使用Java虚拟用户。
第7章 网络通信虚拟用户开发案例。本章重点讲解了一个基于UDP协议应用程序的Vuser脚本开发方法。首先讲解TCP与UPD协议的相关知识,接着介绍案例协议的相关实现方式,随后讲解服务器与客户端的实现,最后介绍了Vuser的开发方法。
赠送的视频课程
为了广大测试同行更好地学习性能测试相关知识,与已经出版性能测试专著相配套的在线视频课程正在进行开发。本套课程将会陆续在IT学习大本营网站(www.itcast.net)上线。目前已经开发完成了两门课程:
LoadRunner性能测试入门与虚拟用户开发基础
地址:http://vip.itcast.net/portal/courses/unit/85
LoadRunner Controller使用基础
地址:http://vip.itcast.net/portal/courses/unit/181
致谢
感谢广大读者对《Web性能测试实战》、《LoadRunner性能测试实战》等已出版作品的支持,读者的支持是笔者写作的强大动力。正是因为大家对此前作品的肯定才促使我完成本书的写作工作;
感谢上海漫索计算机科技有限公司总经理林锐博士,是他将我带入写作这一行;
感谢博文视点周筠老师,周老师对我的写作工作一直给予了很大的支持;
感谢本书的编辑陈元玉,她是本书的责任编辑,她认真负责的工作作风保证了本书的质量;
感谢本书合作者冯艳硕,他具有丰富的开发经验,他的参与使本书内容更加丰富;
感谢我的朋友孙鑫老师,他在本书写作过程中为我提供了动态链接库方面的很多素材;
感谢新浪网测试经理范本银,他协助我完成了第2章的HTTP协议等相关内容;
感谢本书策划编辑富英彬,他为本书付出了很多;
感谢电子工业出版社所有为本书辛勤付出的朋友们;
特别感谢夫人小姬,她通篇审校了本书并润色了那些难于理解的句子,还参加了很多章节的编写工作。特别感谢她在情人节这一天依然和我一起进行本书的扫尾工作;
最后要感谢自己的父母和老师,我的一切,源于你们。...
陈绍英
2009年2月于北京