学习性能测试需要掌握的知识面

上传人:平*** 文档编号:14609844 上传时间:2017-11-01 格式:DOC 页数:4 大小:35.64KB
返回 下载 相关 举报
学习性能测试需要掌握的知识面_第1页
第1页 / 共4页
学习性能测试需要掌握的知识面_第2页
第2页 / 共4页
学习性能测试需要掌握的知识面_第3页
第3页 / 共4页
学习性能测试需要掌握的知识面_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《学习性能测试需要掌握的知识面》由会员分享,可在线阅读,更多相关《学习性能测试需要掌握的知识面(4页珍藏版)》请在金锄头文库上搜索。

1、 鲁德培训 www.testroad.org/软件测试学习学习性能测试需要掌握的知识面摘要:随着 Internet 的普及与迅速发展,企业业务量的迅速加大,数据大集中成为一种趋势,IT 系统承载的负荷越来越重,系统性能的好坏严重的影响了企业对外提供的服务质量。从而对 IT 系统的性能进行测试和调优引起企业的重视,进而性能测试工程师成为 IT 市场的”香悖悖”,并且性能测试有着极高的技术挑战。于是吸引了大量的测试爱好者来学这方面的技术,而一谈到性能测试很多人便会想到鼎鼎大名的 LoadRunner 这款优秀的性能测试工具,然而到这里问题就产生了?关建字:LoadRunner 性能测试 网络基础编

2、程语言数据库操作系统LoadRuner 与性能测试的关系:LoadRunner 初学者的误点:把 LoadRunner 神化了。很多初学 LoadRunner 的朋友认为掌握了使用 LoadRunner 这款性能测试工具,就能够做性能测试了。常在网上看到好多人在学习怎么去使用这款优秀的性能测试工具,本来学习怎么去使用 LoadRunner 这个工具没有错,却把 LoadRunner 神化了,”天真的”以为它什么都能做,以为学会了 LoadRunner 的使用就能做性能测试了。尽管用了大量的时间学会了如何使用 LoadRunner 录制脚本,如何进行关联,如何进行参数化,如何设置集合点等等?可到

3、头来,性能测试还是不会做。为什么?对于产生的性能报告不知道怎么去分析?不知道如何利用得到的分析报告分析出系统存在的瓶颈?不知道如何进行性能调优?像这些事光会使用 LoadRunner 是做不到的?说白了 LoadRunner 只是我们做性能测试的一个工具,它并不是万能的,是死的,具体怎么做还得依靠人去操作与分析。会使用 LoadRunner 的人,并不一定会做性能测试,会做性能测试的人并不一定都会使用 LoadRunner。LoadRunner 只是一个性能测试工具而已。我们应该意识到,测试工具只是性能测试中的一部分,仅是为达到性能测试目的而采用的一种手段性能测试与系统性能的关系:高性能,高安

4、全的系统,不是测试出来的,而是构架,设计,编写出来的。当然在这里我并不否认性能测试的重要性,甚至可以说没有经过性能测试的系统,一定不会是优秀的系统,软件是人开发出来的,而人总是会出错的,所谓智者千虑,必有一失要想做好性能测试,在软件系统需求,设计,编写代码的这些阶段就应该进行性能测试,而不仅仅是系统测试这个阶段才去做性能测试,性能测试应该贯穿于整个软件开发周期中。对初学 LoadRunner 朋友的建意:常看到网上一些网友发贴子问,怎么对性能测试产生的结果进行分析?测试系统时怎么去选择合适的协议?对于发这些贴子的人我想请问你?你能够详细的说下 HTTP 协议吗?TCP 建立连接和释放连接的过程

5、是怎样进行的?什么是协议?协议是用来做什么的?在 OSI 参考模型中各层的作用?数据库中产生并发的冲突的原因?不要太依赖于 LoadRunner 工具本身的学习,而去忽略计算机其它基础知识的学习,我们更应该去掌握一门编程语言,良好的网络基础知识,计算机原理与操作系统知识,数据库知识。这些是我们去学习怎么去使用 LoadRunner 前提与基础。1、为什么要掌握一门编程语言 鲁德培训 www.testroad.org/软件测试学习其一,大家在使用 LoadRunner 时常会遇到一些不能录制脚本的情况发生,或者需要录制一些复杂的脚本,这时候我们就必须手动的开发脚本。其二 LoadRunner 虽

6、然强大,易于使用,可是它却属于商业软件,价格昂贵,并且代码不开源,我们无法了解 LoadRunner具体的实现细节,甚至我们会怀疑 LoadRunner 收集的性能数据准确吗?它有是如何实现的等等,而这些我们通过 LoadRunner 的帮助文档无法得知。性能测试工具并不只有 LoadRunner,做性能测试还有许多优秀的性能测试工具可以选择,像 JMeter,Curl- Loader等等这些非常优秀的开源工具,在全能上虽然并不上 LoadRunner,但在某些方面却比LoadRunner 还要强大。例如 Curl- Loader 这个工具,它虽然支持的协议不多,但是对于http 协议它最高能

7、产生 10 万的并发用户,这是 LoadRunner 远远所不及的。并且这些工具代码是公开的,我们能够从这些代码中去分析具体实现的细节,并且还可以自已编写代码,增强软件的功能,这也是成为性能测试高手的一条途径。LoadRunner 好比我们的 Windows操作系统,易于使用,功能强大,代码封闭,论全能比 Linux 要强大。我们的开源性能测试工具好比 Linux 操作系统代码开源,不易于使用,但很多方面比我们的 Windows 要强大。也许这个时候有人会问对于初学者学哪门语言最好最有前途 C,C+ ,VB,JAVA ,C# ?其实每一种语言能够生存下来,自有其生存的道理,每一种语言都有自已优

8、势和缺点,并且编程语言具有相通信,学好了一门,再去学另外的编程语言,非常快就能上手。对于初学者我建意学习 C 语言,理由有很多,例如很多优秀的开源性能测试工具就是用 C 语言开发的。当然不管选择什么编程语言,或者数据库,或者操作系统,我们不要去想学哪门最好,学哪方面最有前途。我们更应该结合自身的情况,选择最合适的,而不是选择最好的。2、为什么要掌握计算机原理和操作系统知识论坛上常会看到这些问题?LoadRunner 中线程与进程的关系?在什么时候用到它们,怎么区别用线程还是进程呢?LoadRunner 录制产生了乱码怎么解决?怎么去发现内存泄漏?对那些发贴问这些问题的朋友,我依然想请问你你知道

9、进程和线程的概念吗?知道进程有几种状态吗?知道进程间的通信是怎么进行的吗?死锁,进程与线程的区别这些概念你明白吗?如果你连内存的概念,内存的作用,内存泄露的概念都搞不清楚,你怎么去发现内存泄露?如果这些你都不知道,自然就不知道怎么去做性能测试分析?一些网友录制脚本常常会产生一些莫名奇妙的错误?还震震有词的说这是 LoadRunner 的原因。其实要说到底要解决这些问题就必需得有良好的计算机原理和操作系统知识。弄清了进程和线程的区别,你自然就明白了使用进程资源使用高,但安全性要强于线程,线程资源利用率少,使用线程能在一个负载生成器上运行更多的 Vuser,但可能存在安全问题。LoadRunner

10、 录制产生了乱码怎么解决?为什么会产生乱码,你知道什么是字符集吗?什么是编码吗?字符串在我们内存中有是如何存放的?ASCII 编码,ANSI 编码, UNICODE 编码它们的区别是什么?这些都是操作系统的基础基础。掌握好了这些你自然明白 LoadRunner 中产生乱码的原因。当然计算机原理和操作系统的基础知识还有很多得掌握的知识。像操作系统的体系架构、操作系统的重要基础概念,内存管理、存储/文件系统、驱动/ 硬件的管理。要做好性能测试计算机原理和操作系统知识必不可少。3、为什么要有良好的网络基础经常在 51testing 论坛中看到很多人发贴子。像 LoadRuner 中为什么要进行关联?

11、 鲁德培训 www.testroad.org/软件测试学习LoadRunner 测试系统时如何选择协议?LoadRunner 中的如何进行 IP 欺骗?等等。这些问题随便一搜就能发现大量的贴子,其实说到底这些问题和 LoadRunner 的关系并不是很大,要去解决这些问题并不在于你对 LoadRunner 这个工具使用是否熟练,而在于我们网络基础知识是否扎实。例如第一个问题 LoadRunner 中为什么要进行关联?相信很多朋友都知道HTTP 协议知道它是超文本传输协议,但是对于一些新手往往不能够详细的说出 HTTP 具体的内容,像 HTTP 工作的原理,HTTP 协议为什么要使用基于 TCP

12、 的协议而不使用 UDP的协议,HTTP 工作在 OSI 参考模型的哪一层?在 HTTP 协议上数据是怎么传输的等等。而只有当我们明白了这一切,自然而然就会明白为什么要使用关联,到最后你会发现这些问题其实根 LoadRunner 关系并不是很大。HTTP 协议本质上是无状态的;对页面的每个请求都将被视为新请求,而且默认情况下,来自一个请求的信息对下一个请求不可用。在传统的 Web 编程中,这通常意味着在每一次往返行程中,与该页及该页上的控件相关联的所有信息都会丢失。例如,如果用户将信息输入到文本框,该信息将在从浏览器或客户端设备到服务器的往返行程中丢失,为了使用浏览网页,页与页是相互联系不去丢

13、失这些信息,于是了就从现了 Cookie,Session,查询字符串等等保持状态的技术。什么是 Cookie?什么是 Session?Cookie 和 Session 有是怎么工作的?当我们明白了这些,很多的问题就自然而然的明白了,像这些都是基础的知识和 LoadRunner 关系大吗?不大。Cookie 是一些少量的数据,这些数据存储在客户端文件系统的文本文件中,或者存储在客户端浏览器会话的内存中。Cookie 包含特定于站点的信息(像用户名密码以及我们在网站一些个性化的设置等等),这些信息是随页输出一起由服务器发送到客户端的。如果浏览器使用的是 cookie,那么所有的数据都保存在浏览器端

14、,比如我们登录以后,服务器设置了 cookie 用户名,那么当你再次请求服务器的时候,浏览器会将用户名一块发送给服务器,这些变量有一定的特殊标记。服务器会解释为 cookie 变量,所以只要不关闭浏览器,那么 cookie 变量一直是有效的,所以能够保证长时间不掉线。如果设置了的有效时间,那么它会将 cookie 保存在客户端的硬盘上,下次再访问该网站的时候浏览器先检查有没有 cookie,如果有的话,就读取该 cookie,然后发送给服务器。这些是 Cookie 的工作过程,常看到论坛上一些朋友发贴子问使用 LoadRunner 时录制到了一些 Cookie 的信息,它是用来做什么的,看起来

15、很烦可不可以把它删除掉?明白了这些细节的知识,你自然能明白那个 Cookie 的信息能不能删除掉。如果 web 服务器端使用的是 session,那么所有的数据都保存在服务器上,客户端每次请求服务器的时候会发送当前会话的 SessionId,服务器根据当前 SessionId 唯一地标识在服务器上包含会话数据的浏览器,以确定用户是否登录或具有某种权限。不同的用户发送请求 Web 服务器会随机发送一个唯一的 SessionID。而我们使用 LoadRunner 录制时它会把我们 SessionID 写死,所以导致出错。这时候就得使用关联了,这样不仅明白了 LoadRunner 怎样使用关联,而且

16、还明白了为什么要使用关联?对于LoadRunner 测试系统时如何选择协议?这个问题也是网络论讨的比较多的问题。要解决这个问题同样得依靠我们的扎实的网络基础,而不是对 LoadRunner 使用的熟练程度,首先我们得了解 LoadRunner 录制时的工作原理了,LoadRunner 的录制和 QTP 不一样,它不关心你的对象识别什么的,不关心你的什么界面之类的,不关心你使用什么语言编写的,LoadRunner 有一个 Agent 进程,来专门监控客户端和服务器之间的通信,然后用自己的函数进行录制。LoadRunner 录制的时候关心的是通信包,是客户端和服务器之间的数据包。说到这里,大家就比较清楚了,为什么有的时候不能录制呢?因为,协议不认识,导致LoadRunner 截获的数据包不能解析,所以录制下来是空的。所以我们得熟悉什么是协议, 熟悉 OSI 参考模型,OSI 参考模型中各层的作用,TCP 协议栈各层的作用,熟悉 鲁德培训 www.testroad.org/软件测试学习TCP,UDP,ICMP 等等协

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号