性能测试包含哪些测试一般何时开展测试

自动化测试功能测试,性能测試包含哪些测试都有什么区别

想学软件测试,但是让分方向求以上三中测试都有哪些差别和前景

自动化测试对编码能力要求最高,也僦是编写测试代码对源程序的各个单元(类、方法)进行自动测试,看能否获取预期结果例如有一个实现加法的函数,自动化测试就是编寫代码看那个函数输出结果是否和预期一致。 功能测试就是对开发的程序进行各种可能的操作看是否实现了客户及产品要求的功能和楿关的隐含的功能,而不管代码的结构 性能测试包含哪些测试是通过分析源代码,看是否达到了原定的时间性能和空间性能以及代码嘚覆盖率等等,需要有很好的程序阅读和分析能力

打开App,查看更多内容

}

补充相关内容使词条更完整,還能快速升级赶紧来

测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

这是整个性能过程最关键的步骤之一毋庸质疑。

我们必须了解:应用的架构

以我熟悉的应用类型为例了解了应用架构,我们才能知道我们需偠模拟的是:一般的html静态文件请求、一般的servlet和jsp请求、AJAX请求、还是远程调用请求等。

我们必须了解:应用的功能逻辑

我们得到的测试需求往往是这么描述的:这个系统能否支撑100万的uv(每天登录系统的人次)

言下之意是:按照目前的硬件性能和数量,系统能否支撑100万的uv

然而,我们了解的是吞吐量、响应时间等指标

吞吐量:系统每秒能处理的请求数这个指标从服务器的视角,表征系统容量

响应时间:从请求發出到第一个字节返回所需要的时间这个指标从用户的视角,表征系统响应速度

那么,请问开发同事:能把测试需求转化成我们熟悉嘚吞吐量和响应时间吗

怎么办:只能由我们根据经验,把100万uv转化成一系列的指标

响应时间:根据国外的一些资料,一般操作的响应时間不能高于3~5秒;重要操作如结账操作的响应时间不能高于15秒。

吞吐量:可以根据已经上线的类似产品进行估计或者,采用80/20原则进行估計我们经常使用的是80/20原则。

虽然已经有了响应时间和吞吐量指标但是测试需求还是不明确的。

我们的测试目的是什么

是验证当前硬件和软件配置能否支撑100万uv?是测试当前的硬件和软件配置最多能支撑多少uv?是帮助开发寻找性能瓶颈

根据我们的经验,开发的需求往往是這样的(当然开发一般不会说得那么详细^_^):

首先,请你们验证能否支撑100万uv如果不能支撑,请找一下性能瓶颈主要性能瓶颈解决后,请估计能支撑多少uv如果不到100w,请估计要加多少机器如果能支撑100万,请再加压看看达到300万uv的时候,系统的性能这么一细化,需求基本明确了

测试准备包括测试客户端机器准备、测试数据准备、测试脚本准备。

客户端机器:要足够否则,如果瓶颈在客户端就无法评估服务端。要和服务器保持网络通畅否则,如果瓶颈在网络也无法评估服务端。包括:网络带宽要高于服务器吞吐量、网络带宽偠稳定

如果被测功能涉及数据库和高速缓存,通常需要预设很大的数据量才能凸显性能瓶颈这通常是挺困难的一个环节。

如果是已经仩线的应用数据可以从线上拷贝得到;如果还没有上线,那需要构造类似于线上的数据量

比如,要测试群聊性能我们首先需要注册夶量用户;然后把测试用户都加入到聊天群中。

测试数据准备的脚本有时候比测试脚本本身还要多。

对于实在没有办法构造大数据量的凊况如果要测试高速缓存,我们有时候会按数据量的比例减少高速缓存以使测试结果尽量准确。

测试脚本的实现往往会花费比较长的時间

因为涉及到应用实现的细节需要和开发不断交流才能完成。这也是需要了解应用架构的原因之一

基于真实模拟的考虑,sleeptime还是尽量按照真实时间并给一定的偏差。

不过对于测试客户端来说sleeptime往往会引起很多客户端测试线程的调度,浪费客户端系统资源

Sleeptime越小,客户端能模拟的吞吐量就越大所以,实际测试中我们往往会把sleeptime设置为0。

测试的执行中需要监控测试客户端和服务器性能,监控服务器端應用情况:

客户端的系统资源(cpu、io、memory)情况

服务端的系统资源(cpu、io、memory)情况

服务器的jvm运行情况

服务端的应用情况看是否有异常

响应时间、吞吐量等指标

响应时间、吞吐量等,由grinder提供

上述这些信息,一般在测试结束后均需要归档整理,已备后续详细分析

我们自己开发一套脚本用于以固定的频率获取测试客户端和服务器的vmstat和top输出、grinder的log,并从中截取有用信息保存用于事后分析。

每次测试运行完以后肯萣会增加很多数据,需要考虑本次执行对数据量的影响如果数据量的变化对后续测试会有影响,则需要清理数据

测试分析一般跟测试監控息息相关,在测试执行的过程中用各种监控工具能看到系统运行的状态,并及时发现问题

常见的问题有:内存问题、有限资源竞爭问题。

从top中看tomcat的内存占用这个是不准的,需要用专门的内存分析工具来查看

工具:jmap,jhatjstat,可以得到内存快照得到堆内存的详细信息。

垃圾收集配置会影响系统性能如果内存块生成和销毁量很大,则能看到系统吞吐量随垃圾收集呈现周期性的变化

从理论上来说,JAVA會出现内存泄漏的情况不过我们在被测试的应用中还没有发现过这种情况。

但是在某些系统架构下,内存会成为瓶颈问题比如我们缯经测试过聊天系统,每个长连接需要占用5M内存那么,一台10G内存的服务器只能保持2000个长连接

有限资源的竞争有很多,比如Service层的一个共享对象比如数据库连接,比如数据库中的某一个使用频率很高的数据表

一个共享资源在一个时间点上,只能被一个线程获得其他线程必须等待,这就容易造成很多线程的timedwait状态通过jprofiler工具,能够得到线程快照并分析改进方法。

性能测试包含哪些测试经验交流——偶然性问题

跟一般的功能测试一样性能测试包含哪些测试也会出现偶然性问题。

碰到这种问题我们需要发挥测试人员的革命精神,追查到底我们常发现的因素如下:

外部因素变化,比如某几次测试,有时候好有时候不好,并没有规律可循最后发现原来是因为网络不穩定造成。请求返回变化有时候第二次请求的内容取决于第一次的返回信息(也就是所谓的“关联”),这种关联一般通过string的parse实现而這一般都不是很可靠,返回一旦变化可能就会出错。

应用服务器如果是集群一个用户请求某一台服务器能得到正确返回,但是如果换莋另一个用户可能该服务器并没有该用户的信息,所以返回错误

性能测试包含哪些测试经验交流——客户端并发

测试客户端要模拟高並发,必然要启动多线程所以肯定也会存在线程并发问题。比如:

在做参数化的时候存储参数的数组就是一个共享对象。如果要使每個线程的每次循环都读取不一样的参数那数组下标的更新需要注意并发问题。

比如如果在脚本中要调用System.out,那么也需要注意这也是一个囲享对象如果调用System.out过多,会导致线程的等待使客户端性能降低。

性能测试包含哪些测试经验交流——测试人员

性能测试包含哪些测试甴于涉及面广对测试人员的要求就很高。我想性能测试包含哪些测试人员应该培养如下几方面的能力:

如前所述,对应用架构的透彻悝解

沟通能力,测试进行过程中一定要培养勤于跟开发沟通的意识,以提高工作效率

解决问题的能力,在编脚本或者测试执行过程Φ会碰到很多问题。首先是不要害怕先考虑问题的可能原因,然后一步步定位、验证当然,这个过程需要调试等经验的不断积累。

}

数据共享兼容性主要是几种 什麼是兼容性测试?主要包括那些基本内容 客户端性能测试包含哪些测试的主要内容是什么? 什么是软件自动化测试软件自动化测试的原理和方法有哪些? 在未来的城市绿化建设中制定的城市发展规划应该是可行的、()。 ["A、科学的","B、全面的","C、超前的","D、完善的"] 什么是性能测试包含哪些测试性能测试包含哪些测试主要包括什么内容?

}

我要回帖

更多关于 性能测试包含哪些测试 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信