性能测试分享

    昨天,破冰分享主题是“性能测试”,对于我这个还没有接触过性能测试的人来说,真的是充满了膜拜,于自己而言,一头雾水……需要补充的知识有好多……

1.需要了解的基础知识

HTML语言基础:比如post请求、元素、属性、链接、表单、url等都需要了解

C语言基础:后期使用Loundrunner,它有些东西是基于c语言写的,基本的知识即可

http协议:后期要对接口做性能测试,了解http请求,如get、post请求,请求返回的状态码,请求报头信息等

xml:与html类似

JSON:如post请求,其中都是用json传输数据

数据库:增删改查,操作后要确认数据是否正常

2.性能测试基础介绍

(1)性能测试重要性与功能测试区别

        从功能测试向性能测试转变的时候,需要注意的是:需要把功能测试的思想去掉,往性能测试上转换

(2)性能测试分类

        负载测试:看一下系统指标达到的极限,达到哪个极限的时候系统处于饱和的状态

        压力测试:有时候也叫强度测试,cpu、内存都在100%使用的情况下,系统处理各自任务的能力,是否会出现错误

        并发测试:用户同时向一个应用发送请求,看系统多久可以将并发的数据完成

        配置测试

        可靠性测试

(3)多角度看待性能

        没有一个准确的标准,从不同的角度看,解释就不一样.

        从用户来看,软件性能就是软件对于用户操作的响应时间;从运维的角度看,软件性能表现在系统是否能够提供给用户稳定、可靠的服务;从开发角度看,软件性能表现在如何通过调整代码的设计和实现,使其达到最高。

        角度不一样,性能的理解是不一样的,不一定都是提高软件的运行速度,如银行软件,并不要求速度高,需要的是稳定运行,保证数据不出错

        需要站在不同的角度看

(4)性能测试主要术语

        并发数:也叫做虚拟用户数,在同一时间点向系统发送产生的交互数量,如12306抢票,八点开始抢,八点整大家一起开始抢票,如果有100个人正在抢,那这个100就是一个并发数

        注册用户数:指当前系统中全部注册的用户数量,和并发数不一样,并发数指和系统产生交互操作的数量,注册数量只是注册,并没有产生交互

        在线用户数:当前系统时间段内,登录系统的用户数量,但在线用户数并不一定都和系统产生了交互

        事务:比如登录网站,输入用户名、密码、点击登录,这三个操作就可以看成一个事务,即登录事务

        TPS:每秒通过的事务数,即每秒处理的事务数量,它是衡量系统处理能力的重要指标

        吞吐量:比如被测系统所产生的数据流量,点击网页,网页是10M,这10M就是产生的数据流量,如果有10个人点击,那就是10*10的数据流量,即为网页的吞吐量

        每秒点击率:客户端每秒真正发给服务端请求的数量,比如有个接口,每秒向这个接口发送多少请求,这个不能反映系统的性能,只能反映客户端向服务端发送请求的数量

        思考时间:用户访问这个网页的停顿时间,比如输入用户名和密码,要确定用户名和密码是否正确,这个等待时间就叫做思考时间

        资源利用率:如cpu占用率,内存使用率,IO等使用率和时间,需要后台监控,才能看出来

3.性能测试流程

破冰提供流程图

一般写性能测试脚本时,要进行的操作:

        需求分析,测试点提取(分析后,要对哪些功能进行性能测试,比如是要求网页的tps达到1000还是2000,还是说吞吐量达到多少;上面所说的性能指标,每一个性能指标就是一个测试点,究竟要测试哪一个,这里就要确定;如何提取测试点:一般参考历史数据,历史上测试点有哪些;客户提出的;参考同行业、通项目性能测试的指标;业界通用的规则,大家都达到的一个性能指标)

        指标的评估:比如tps,要达到多大值,如果是新系统,会以自己测试标准为准或者内部制定标准,以这个标准为起点进行性能测试,循序渐进,慢慢提高

        制定计划:制定好后,和其他组进行评估,如果没评估通过,继续制定,如果通过了,就进行下一步

        搭建测试环境,编写用例,执行用例,调试用例,调试完查看是否达到要求

4.测试框架体系

(1)LoundRunner

        Loundrunner:分为三个小的功能点,即三大组件:编写代码组件、场景组件、分析组件

        编写代码组件、场景组件、分析组件都要使用起来,一般都是先把脚本写好,去掉脚本中没用的信息,再进行场景设计,如每隔多少秒添加一个用户,登录场景:每隔多少秒登录多少个用户,多长时间达到一个最大用户数,中途连续执行多长时间,达到连续时间后每隔多少秒减少多少用户,多长时间把最大用户减为0,跑完后就会有个报告,然后用分析组件进行分析,便会产生一些参数值或信息

        不要指望软件就会提供系统的性能问题,性能指标都是人工分析出来的,软件永远不会提供,性能测试并不是对性能测试工具的了解,而是长期的经验积累。

        Loundrunner也可以做接口性能测试。

(2)Jmeter

        主要做接口性能测试。可以单独做接口测试,也可以做接口性能测试

        资源利用率:IO利用率、内存、cpu利用率,如果服务器是linux的,需要在linux服务器下添加插件,监控系统的指标,跑性能测试脚本的时候(shell脚本或插件),会将这段时间的cpu等的指标收集起来,Jemeter/Loundrunner生成的报告和linux监控信息综合起来,具体确定哪个地方会产生问题

        常用的:Jenkins+Jmeter+Ant

(3)Soapui

(4)Linux

(5)服务器中间件调优

        tomcat、appach、ant等,主要是一些配置文件的优化,如果会appach优化,tomcat也就会了,参数大多数是一样的,比如请求数、最大链接数

        MaxRequestsPerChild:每个子进程在其生存期内允许伺候的最大请求数量,默认为10000。到达MaxRequestsPerChild的限制后,子进程将会结束。如果MaxRequestsPerChild为"0",子进程将永远不会结束。

        中间件配置优化,并不是某些参数配的越高越好,讲究一个平衡,各个参数平衡,才能最优

(6)数据库:mysql优化

        抓取大范围,牵扯小范围。如:mysql下,把慢查询打开,查到10条,挑出一条最慢的,进行分析,是没做索引?还是链接太长?一般是先加索引,如果还没有优化,便可以把它拆开,并不是所有的sql语句都要放到后端处理,可以拆开一部分放在前端,前端处理完后,传给后端,减轻了后端服务器的压力

        一般的做法是:分库分表;多库多表;主从分离

(7)JVM调优

        了解java基础知识:年轻代、年老代、持久代分清楚,java配置文件中有这几个代的占用内存大小的配置;jc,什么叫jc,jc是java中独有的管理垃圾回收的策略,系统自动执行,如果有些类、方法加载后,长期不使用,便会触发jc垃圾处理机制

        jc内存泄露:监控jvm中年轻代、年老代以及类的占用内存大小的时候,如果看到一些内存信息被占用的越来越大,那就有可能存在内存泄漏了

        一般jc之后,年轻代、年老代的内存占用率会回到一个很低的值,然后再慢慢加,加到一定程度,又会触发jc,再回到一个低点,如果很有规律,基本没有内存泄漏

        一般系统运行很久之后,才能看出是否存在内存泄漏

        jprofiler_windows:检测内存泄漏工具,可以模拟出当前代码是否存在内存泄漏

(8)项目+框架

        每个网站刚开始做并不是就有一个很好的优化框架,都是一点点调优,网页结构最初都是web服务器、数据服务器、文档服务器组成

        web数据从数据库直接读写,支撑不了了再加入一些静态数据库缓存,web服务器端和数据库服务器端加入cach缓存,如ridis,数据服务器就升级了

        继续发展,流量增加、点击量增加,没法支撑,便会考虑部署集群,集群部署简单说就是多加几台服务器,这时候就牵扯到负载均衡,它来控制浏览数据的时候到哪个服务器上取数据

        数据库越来越大,查询效率低,便会进行数据库分离,如分库分表、多库多表等,一般分为水平切分和垂直切分

        不同业务存放到不同数据库,减轻压力,比如将经常用到的放到数据库A上,用的很少的放到数据库B


疑问解答

(1)数据库出现性能问题,一般有哪些原因组成:

答:锁表,锁表并不能影响性能,因为都无法进行操作,锁表不属于性能方面问题。一般都是索引设置不好,语句拼写太长,各种查询条件太多

(2)性能测试推荐书籍

答:如果没有基础,淘宝、京东随便找一本书都挺好的,先看一本。小强性能测试

        性能测试,Jemeter、Loundrunner只是性能测试工具,比如Loundruner录制完,产生好多脚本,归根结底还是以接口的形式在向网站发送请求,所以一定要把接口弄明白

(3)Jemeter、Loundrunner、SoupUI都学会了,那应该怎么选择呢?什么情况下用?

答:webservice接口测试,可以选择soupui,基本不用编写代码

        http协议的接口测试,建议使用jmeter、loundrunner

       界面的性能测试,建议使用loundrunner


个人收获

(1)对于一个小白来说,只是听过性能测试这个名词,对它究竟怎么测?怎么衡量,需要哪些知识,根本没有概念,这次分享,真是涨知识了,开阔了自己的眼界。

(2)公司也是刚开始进行性能测试,现在也是在摸索阶段,之前开会听的时候有些东西因为没有概念,所以听别人讲起,只觉得很厉害,这次分享之后,自己也知道他讲的哪些是对的,哪些是错的了。

(3)对于性能测试,自己也知道如何下手了,先从掌握基础知识开始。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,431评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,594评论 18 139
  • 需要原文的可以留下邮箱我给你发,这里的文章少了很多图,懒得网上粘啦 1数据库基础 1.1数据库定义 1)数据库(D...
    极简纯粹_阅读 7,399评论 0 46
  • 曾经看过一篇很感动我的文章,文章里说了一个真实的故事。 一个女人问和她拍拖3个月的男朋友:“你爱我吗?会和我结婚吗...
    存凤呢姑娘黄莺阅读 594评论 10 4
  • 成长路上,如唐僧的取经路,八十一难都需要慢慢地熬过,但一定要有坚持不懈的前进和坚定不移的信仰。~题记 2...
    jwyyw雯阅读 253评论 0 1