永发信息网

为什么要进行性能测试

答案:1  悬赏:0  手机版
解决时间 2021-03-03 08:13
  • 提问者网友:箛茗
  • 2021-03-03 00:21
为什么要进行性能测试
最佳答案
  • 五星知识达人网友:杯酒困英雄
  • 2021-03-03 01:49
问题一:为什么要进行性能测试? 原因有三:
川. 开发者的水平各有不同,有的写出来的东西性能高,有的低,所以需要统一测试一下。
2. 编程工具本身也有性能问题,用这样的工具开发出来的软件也要确认一下是否达到了需求所要求的性能指标,比如响应时间应该控制在多少秒以内。
3. 性能测试,强度测试都是为了测试系统的稳定性,稳定性好,软件的质量就好,买的钱就多。问题二:为什么要进行性能测试 要找系统性能瓶颈
要找扩容方案
要看看是否达到上线标准
要预估线上问题问题三:为什么要进行系统测试 原因有三:
1. 开发者的水平各有不同,有的写出来的东西性能高,有的低,所以需要统一测试一下。
2. 编程工具本身也有性能问题,用这样的工具开发出来的软件也要确认一下是否达到了需求所要求的性能指标,比如响应时间应该控制在多少秒以内。
3. 性能测试,强度测试都是为了测试系统的稳定性,稳定性好,软件的质量就好,买的钱就多。
软件测试的目的,第一是确认软件的质量,其一方面是确认软件做了你所期望做的事情(Do the right thing),另一方面是确认软件以正确的方式来做了这个事情(Do it right)。第二是提供信息,比如提供给开发人员或程序经理的回馈信息,为风险评估所准备的信息。第三软件测试不仅是在测试软件软件产品本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此,软件测试的第三个目的是保证整个软件开发过程是高质量的。问题四:为什么要做测试? 1、测试是做什么的?
如果是专业的测试人员的话,那软件测试的工作就相当复杂了,首先制定测试计划是势在必行的,包括测试的起始结束时间,在什么时间要有什么进度,之后就是进行各个测试环节,单元测试——集成测试——系统测试——验收测试。这里边前两步是用到白盒测试,后两步需要的是黑盒测试。
如果是找测试方面的工作的话,那一开始我相信问得不会很深,但是基础肯定是要知道的,就是什么是黑白盒测试,建议测试文档包含的必须部分等等吧,都是很基础的。
2、软件测试类型都有哪些?测试类型的区别与联系?
测试类型有:功能测试,性能测试,界面测试。
功能测试在测试工作中占的比例最大,功能测试也叫黑盒测试。是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。
界面测试,界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。而且设计良好的界面能够引导用户自己完成相应的操作,起到向导的作用。同时界面如同人的面孔,具有吸引用户的直接优势。设计合理的界面能给用户带来轻松愉悦的感受和成功的感觉,相反由于界面设计的失败,让用户有挫败感,再实用强大的功能都可能在用户的畏惧与放弃中付诸东流。
区别在于,功能测试关注产品的所有功能上,要考虑到每个细节功能,每个可能存在的功能问题。性能测试主要关注于产品整体的多用户并发下的稳定性和健壮性。界面测试更关注于用户体验上,用户使用该产品的时候是否易用,是否易懂,是否规范(快捷键之类的),是否美观(能否吸引用户的注意力),是否安全(尽量在前台避免用户无意输入无效的数据,当然考虑到体验性,不能太粗鲁的弹出警告)?做某个性能测试的时候,首先它可能是个功能点,首先要保证它的功能是没问题的,然后再考虑该功能点的性能测试。
3、请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系?
黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。
软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:
1)是否有不正确或遗漏的功能?
2)在接口上,输入是否能正确的接受?能否输出正确的结果?
3)是否有数据结构错误或外部信息(例如数据文件)访问错误?
4)性能上是否能够满足要求?
5)是否有初始化或终止性错误?
软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,......余下全文>>问题五:性能测试为什么要采用自动化 自动化测试时自动化测试,与性能测试不同的。
广义的性能测试时包含自动化测试的问题六:如何有效进行性能测试 “为什么我上线系统的性能和性能测试的结果相差很大呢?”这是一些用户会经常碰到的问题。当然产生这个问题的原因很多,下面我用一个很典型的例子来说明一下。一个用户登录界面,要求用户输入用户名、密码点击登录,登录系统。程序的处理流程如下:根据输入的用户名、密码生成SQL语句,select roleID from usertable where username='用户名' and password='密码',把这条语句发给ORACLE数据库,从数据库中查询数据,如果查询的roleID不为空则是合法用户允许登录,否则不允许登录系统。 这是一个非常简单的系统。性能测试人员用LOADRUNNER录制脚本,然后用逐步加压的方式来运行脚本,TPS、ORACLE的命中率、资源占用都很理想。性能测试人员就陷入了一种盲目的乐观情绪中,就认为系统性能没有问题,结果在实际运行中系统性能与性能测试中的性能相差很大,为什么会出现这种情况呢,下面我们来分析一下:首先我们来了解一下ORACLE的运行机制:从客户端发送一条SQL语句到ORACLE服务端,ORACLE要对SQL语句进行解析、执行、返回结果。 并且ORACLE有一个LRU(最近最常使用的语句)机制,把最近最常使用的SQL语句保存到共享内存SGA中的libary cache中,下一次再有这样的请求它就不解析了,直接从共享内存中使用。假如我们使用的SQL语句是select roleID from usertable where username='AAA' and password='123',在我们加压的时候它就解析一次或很少的几次,其他的请求就会从共享内存中取得,并且返回的结果也会保存到BUFFER CACHE中,这样系统的测试结果当然就是很好的。但在实际工作中,用户名和密码是各种各样的,而ORACLE解析的条件又要求非常苛刻,SQL语句有一点不同它就认为是不同的SQL语句就要重新进行解析,而解析非常耗费系统资源,所以在实际运行中系统的性能和性能测试的结果相差很大。通过这个例子我们可以看出我们没有把真正的压力压到点上,也就是进行的不是有效性能测试。   如何进行有效性能测试呢?一定要仔细地分析你要进行测试系统的架构、技术体系,LOADRUNNER只是一个加压工具,它对 ORACLE的监控也非常的不好,不要盲目的相信LOADRUNNER.一定要充分重视测试的调研和设计工作,如果能在测试前拿到系统开发的各种文档是最好的,如果没有也要充分调研业务人员、开发人员、系统运维人员,了解系统的技术架构、业务组成、业务流程、业务频度、数据量等要素,这样才能进行有效性能测试。问题七:为什么要进行软件测试?软件测试的目的是什么? 软件测试的目的,第一是确认软件的质量,其一方面是确认软件做了你所期望做的事情(Do the right thing),另一方面是确认软件以正确的方式来做了这个事情(Do it right)。第二是提供信息,比如提供给开发人员或程序经理的回馈信息,为风险评估所准备的信息。第三软件测试不仅是在测试软件软件产品本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很禒能是有缺陷的。因此,软件测试的第三个目的是保证整个软件开发过程是高质量的。问题八:性能测试应该做哪些准备 环境搭建:这个根据实际规划,我在企业内做过的性能测试搭建的环境都是和用户上线使用的实际环境一样的。
数据准备:个人感觉是整个工作里第二耗时的,需要真实模拟用户数据,这个不是单单的创建几个帐号就完事的,每个用户基本都会有不太一样的配置,实际操作的时候部署数据的脚本都写到手软。
脚本编译:选择性能工具编译性能脚本,你需要跑什么业务流程就编译什么样的脚本。
脚本执行:用规划好的用户数执行脚本,这个一般持续很长时间,时间太短不足以暴露服务器等的性能瓶颈,性能测试中最耗时的就是这个步骤。
收集日志:在执行脚本完成后收集到的能客观反应系统性能的日志、报表文件,比如LR的报告、数据库的AWR日志等等。
分析结果:分析收集到的日志、报表,找出性能瓶颈或是得出性能指标结果。这个一般需要对数据库或者底层非常了解的专业人士来分析,一般测试人员只需要提供收集到的报告就差不多了。
生成报告:将上面所有的性能测试活动整理总结,输出测试报告。问题九:要做好性能测试,该掌握些什么? 这类问题之前也被问到很多次了,所以这次干脆整理一下,发个主题供同行们参考。如果需要补充,也欢迎大家留言一起讨论。 如果想真的做好性能测试,需要学习的东西还是比较多的。简单列一下吧。 1. 精通性能测试的基本概念,过程,方法论,了解性能工程;
3. 扎实的计算机专业基础知识,包括计算机组成原理、操作系统、数据库原理、计算机网络原理;
4. 熟悉至少1个常用的数据库产品,例如SQL Server或者 Oracle,能进行一般的数据库管理操作,熟悉SQL脚本的使用,熟悉常用的数据调优工具和常用的counter;
5. 熟悉至少一个操作系统的原理,Windows或者Linux都可以,熟悉操作系统的体系架构、操作系统的重要基础概念,以及内存管理、存储/文件系统、驱动/硬件的管理、网络协议的实现及构成、性能的监控方法和原理,熟悉常用的counter;
6. 熟悉至少一个web server 产品,例如apache,了解一般的配置和常用的counter;
7. 熟悉至少一个应用服务器产品,例如tomcat,了解一般的配置,熟悉常用的服务器性能监控方法和原理,熟悉常用的counter;
8. 至少熟悉TCP/IP协议,熟悉HTTP协议,至少见过并了解三层、四层交换或者路由器的使用和配置。了解常用的与网络性能相关的counter;
9. 了解一般的大型企业应用的部署架构和应用架构;
10. 了解知名大型web应用、高并发量、高流量、实时响应要求高的超大规模网站的架构和优化历程;
11. 熟悉统计学的基础知识、常用分析方法以及实验设计方法,了解数学建模相关的知识;
12. 熟悉专属行业的业务知识和用户场景,例如电信行业的OSS系统所涉及的业务知识和用户场景,证券交易系统所涉及的业务知识和用户场景;
13. 大量的实际性能测试及优化经验;
14. 积极的参与到各类圈子、社团的讨论和交流、分享中。 暂时先想到了这么多,有兴趣的朋友可以一起讨论一下,相信每个人都有自己不同的经历和感想,可以跟其他人分享一下,提供参考。
另外,我之前也整理发布过不少性能测试方面的资料,从入门级的文章到 升级的必读都有一些,有兴趣可以参考。问题十:服务端怎么做性能测试 使用LR对数据库进行性能测试,实际上有多种办法,包括通过现有的数据库协议进行CS模式的先录制后执行的模式,以及通过socket方式向服务器发包方式的测试方式。这些是常规书籍上介绍的比较简单上手的测试方法,但是不具备通用性,受已有协议或socket编程方式的限制,所以需要更为通用的测试方法。
用Java user的协议进行所有数据库性能的测试工作:
Java user 不需要录制,把所有的操作通过java语言进行实现,通过lr调用java的class进行加压批量操作,这样可以不关心被测系统是哪个数据库,只要能够通过jdbc进行访问,就能实现性能测试。
一、测试环境准备
1. 被测服务器准备,根据测试目的,搭建需要的数据库服务器,确保数据库能够正常访问,正常操作;
2. Java代码的准备,无论使用哪种IDE,只要能够编写访问数据库的class就可以,形式可以是j2se,也可以是j2ee,因为在操作时只使用class的部分方法,所以j2ee就可以了;
3. LR的脚本调试,把java的class导入到脚本调试模式,根据需要添加事务以及其他操作。
二、编写数据库访问
1. 使用myeclipse,创建web project,创建如下图的包目录:
Java文件中包含各种访问数据库的方法。
需要注意的是,class中的方法必须是public static,否则LR中无法调用。由于创建的是j2ee程序,所以不用main函数,在web中就可以进行功能验证。
确认class中的方法编写完成,创建一个web.jsp文件,如下:
导入class
声明类,并实例化,直接调用刚才编写的3个方法,因为这3个方法是直接对数据库进行操作,不需要实参,也没有返回值,所以直接实现即可。
此时启动web服务,在浏览器中输入jsp的地址,直接刷新页面,就可以调用这3个方法,如果正确,就会对相应的表进行操作,如果不正确,则需要修改相应的代码。
2. LR脚本准备:
LR脚本实际上就是对访问代码的调用,关键在于需要根据测试场景划分不同的脚本布局。
例如:在myEclipse里,我们只编写了一个class,其中包含三个方法,如果在执行性能测试时,这三个方法相互独立,互不干涉,则最简单的划分方法是,创建三个java user,每个java user中包含一个方法,做三份脚本,场景执行时分别进行调用。如果三个方法之间有相互关系,则需要根据实际情况,把有关联的方法放在一起,具体情况可按实际灵活分配。
因为已经将class文件进行编译发布了,所以可以在“java2postgres\WebRoot\WEB-INF\classes\com\lr\test”目录中找到对应的class文件,
复制这个文件,找到LR的目录:HP\LoadRunner\classes\com\lr\test\ 如果没有文件夹,按相同的内容创建。
在LR脚本中进行引包操作:
将需要执行的java类以及方法,放在action中,可根据实际测试情况和所需要验证的内容,具体调试代码。
在这里可以像编写普通LR脚本一样,添加事务或集合点等内容。
由于是通过JDBC对数据库进行访问,因此要在java user中加载jdbc驱动。
运行时设置中,增加jdbc驱动,需要注意的是java user使用的本地jdk,需要至多1.6版......余下全文>>
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯