ITPub博客

首页 > 自动化运维 > 大规模网络运维 > 零基础如何入门Web性能测试?汇总15个常见问题,集中答疑一波

零基础如何入门Web性能测试?汇总15个常见问题,集中答疑一波

原创 大规模网络运维 作者:博为峰网校 时间:2019-08-20 17:43:12 0 删除 编辑

1、目前正在研究jmeter,请问初期做性能,应先从几点做起?

Jmeter和LR都是目前性能测试的首选工具,如果你有LR的学习背景,那么Jmeter上手会很快,重点理解线程和进程的概念,流程和LR是类似的。如果没有,从入门的角度我建议先了解常用网络协议和操作系统线程和进程的概念,Jmeter用java比较理想,可以考虑了解一些编程基础。PS:其实用Jmeter先学习接口测试会更好理解性能。

2、请问零基础,计算机硬件专职业转行到这个行业,需要准备哪些?

计算机硬件已经具备了基础的计算机知识,要转软件是相对容易的,可以考虑从如下维度准备:

1)先准备自己拿手的网络和操作系统部分,网络主要是应用层协议,为性能和接口测试做铺垫,操作系统主要是为了搭建测试环境

2)建议熟悉一种编程语言,java或者Python都是首选语言,不需要精通,至少要能够进行简单的脚本编写

3)找一本介绍全面的专业的软件测试书籍精读,一定是精读。

4)如果可能最好找项目练手,从功能测试开始

3、目前做接口测试,进阶的时候还是会茫然,希望您能给点建议,另外您在做管理的时候,对员工一般是持什么态度,或者说姿态呢?如何培养,如何相处,如何分配任务,控制项目进度,质量?

这问题好大,我挑些重点说:

1)接口测试实际上是协议的测试,建议你从网络协议入手,这样才能做好接口测试

2)至于测试管理工作我认为因人而异,有些人天生强势,但有些偏平和,最关键的还是自身实力,如果自己不够强,一句俗话叫做将熊熊一窝就是这个理,姿态不重要,实体才重要。

3)至于培养,相处,分配任务这些是管理细则,总的思路是用其所长补其所短,人无完人,而且大多数都会觉得自己比领导牛B,让每位员工发挥最大价值,有成就感比较重要。

4)控制项目进度和质量  这个是方法问题,有很多方法可以控制,例如:测试版本控制,缺陷分析等手段,可以参考一下软件工程,敏捷过程等方面的资料。希望对你有所帮助

4、用Loadrunner做压测,响应时间比实际要高很多,用LR做压测,平均响应时间几十秒钟,实际手动打开链接1秒不到,差距很大,请问有哪些原因会导致这个问题呢?

比如下图,vuser才十几个,响应时间就十几秒了,但是实际上的体验还是很快,如何解决?

初步猜测应该是响应时间的设置不当导致的,举例说明:你要录制登录脚本,并记录登录的响应时间,你在LR的脚本中插入了事务函数(注意是一组函数),结果得到的响应时间是5s,但实际登录你感觉不到1s,那么可能是你的函数位置不对,包含了输入用户名和密码的时间,也可能是你的响应时间函数内包含了思考时间。前者你需要调整事务的位置;后者你需要在run time setting中排除掉思考时间。供参考

5、请教一下怎么样去抓程序的页面元素啊? 像Selenium web那样 抓页面的元素?有什么好的工具或者方法?

如果只是想抓取页面元素,推荐Chrome Developer tools,在Elements下查看。如果是为了自动化测试,除了selenium也可以考虑QTP(ALM)

6、请问软件疲劳测试应该怎么做?

一般是做压力测试,压测依据项目和业务的不同都会有所差异,推荐三种,一种是4H峰值压力的80% ;一种是24H,压力量可以控制在60%70%,还有一种是7*24小时(有的是一直持续50%的压力,有的是按时间波动压力值进行测试)

7、对B/S系统做压力测试前需要做哪些准备?如何客观的去分析一个系统?压力测试工具以前只接触过 Loadrunner,所以打算用Loadrunner,不太熟,里面的需要做的系统指标的设置看起来很麻烦,不知怎么去分析系统。还有就是做压力测试前除了选择熟悉工具之外,我还需要做写什么呢?

你的问题很难一两句话说清楚,对于前期准备工作,只能谈谈我在性能测试项目中的拙见:

1)先对需求进行初步分析,确定哪些环节需要性能测试,也就是对于你们系统来说压力最大的点在哪里

2)看现有资源,提前做好环境的准备工作,最好测试环境和生产环境1:1(实在做不到也要尽量接近,这点很重要,不然你要做等比换算 )

3)看被测系统使用的协议以及操作系统和应用服务器等各类配置,选择匹配的测试工具(多数WEB系统LR是可以应对的)

4)看时间,大多数情况下性能测试的时间并不充裕,需要抓重点优先测试。

8、如何取舍Loadrunner和Jmeter?

全看心情,玩笑哈~~如果从学习入门的角度就看代码和网络基础,如果代码和网络基础还不错直接用Jmeter入门就好,反之用LR入门更好。如果从企业应用的角度就看哪种更合适,对被测系统支持的更好。

工具只是形式,理解性能测试的基本原理用什么工具都可以的。

9、对Java频繁GC怎么定位问题?

请尝试用profiler寻找内存异常,例如短时间过多的对象创建,或者较大的对象创建。

10、我想实现50个用户并发上班打卡签到,参数化、迭代已设,然后,在签到函数前面添加了集合点函数,运行结果发现,用户签到后返回的签到时间是一分钟一个,并没有在同一个时间点进行签到!请教这是为什么?如何解决?

先去掉集合点试试看呢?同时启动50个用户并行(不设置集合点也可以实现并发操作的),如果还是持续一分钟,那请你检查事务时间和思考时间,事务时间是需要你手动配置的,思考时间默认是启动状态,你可以在Runtime Setting中查看一下,有可能你最终得到的1分钟是整个脚本运行一次的时间或者是包含了思考时间的结果,不是同时打卡的时间。

11、请问电商秒杀产品是如何测试的?

和其他产品的测试没有太大区别,主要是对时间点的要求比较高,可以考虑在性能测试脚本中使用集合点函数实现同一秒钟的并发。

12、压力测试和性能测试一样吗?

分类方法各有不同,没有定论,普遍来讲性能测试是对这类测试的统称。我倾向于下面的分类方式

性能测试(狭义)——性能测试方法是在特定的运行环境下,通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生产性能要求。

基准测试——在一定的软件,硬件和网络环境下,模拟一定数量的用户运行一种或多种业务,将测试结果作为基线数据,供后续测试活动参考。

负载测试——通过在被测系统上不断加压,直到性能指标达到极限,例如“响应时间”超过预定指标或某种资源已经达到饱和状态。

压力测试——压力测试也称为强度测试,主要测试系统在一定饱和状态下,例如cpu、内存在饱和使用情况下,系统能够处理的会话能力,以及系统是否会出现错误。PS:在极限值80%左右的情况下持续运行一段时间(2~4小时)

配置测试——配置测试方法通过对被测系统的软\硬件环境的调整,了解各种不同对系统的性能影响的程度,从而找到系统各项资源的最优分配原则。

可靠性测试——在系统加载一定业务压力的情况下,使系统运行一段时间,以此检测系统是否稳定。

并发测试——并发测试方法通过模拟用户并发访问,测试多用户并发访问同一个应用、同一个模块或者数据记录时是否存在死锁或其者他性能问题。

PS:分类其实不那么重要,在实际项目中往往都是混合应用的

13、Web性能测试除了并发登陆以外,还有哪些比较常见的测试场景?

场景取决于业务,例如你是电商网站,你肯定要测试同时下订单的情况? ?;如果你是医院挂号网站,你肯定要测试多人抢一个医生的号源;如果你是银行系统,要考虑多人同时取款吧?

14、一般网站压力多大百万用户?

这要看计算方式,理论值100万/天的业务访问量  拆分到每秒钟是非常少的;但这不符合实际情况。

如果系统已上线,直接取线上数据做参考即可,一天中的峰值有几个,峰值时段分布情况可以推算出并发用户量;

如果系统未上线,可以利用2/8原则,80%用户集中在20%的时段,推导出业务访问量

15、目前遇到一个问题,在一台配置为8g,i3的win7系统运行压力测试,并发总是上不去,总是在140左右就会出现异常,超时等问题,请问如何分析呢,是因为服务器还是电脑的问题?

服务器压力上不去可以从如下维度分析:

网络流量是否有限制、

数据库/应用服务器是否报了异常,如果有请查看一下日志;

查看操作系统的资源监控情况,CPU占用率如何,是否达到了100%

代码方面是否存在性能问题,可以在大并发访问的时候手动访问系统,看看业务上有无异常。

PS:性能瓶颈分析和定位需要一个积累的过程,要学会看一些基础指标,提升编码能力,理解软件架构。

加官方微信:sy51testing 回复关键词“学习”领取限量软件测试学习资料哦~~

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31407649/viewspace-2654327/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2016-11-02

  • 博文量
    212
  • 访问量
    168900