0222性能测试笔记一.docx
《0222性能测试笔记一.docx》由会员分享,可在线阅读,更多相关《0222性能测试笔记一.docx(13页珍藏版)》请在冰豆网上搜索。
![0222性能测试笔记一.docx](https://file1.bdocx.com/fileroot1/2022-11/30/b9fbeeec-9c4a-4d13-b110-f41875c2d698/b9fbeeec-9c4a-4d13-b110-f41875c2d6981.gif)
0222性能测试笔记一
参看书:
操作系统精髓与设计原理
代码整洁之道
TCP/IP详解3——从卷3开始看
企业应用架构模式
高性能网站建设——性能测试前端调优
SQLserver数据库技术大全
MySQL性能调优与架构设计
高性能MySQL(第2版)中文版
品悟性能优化(Oracle资深技术顾问10年铸剑)
windows系统编程——SOCKET协议的
windows网络编程
1.什么是性能测试:
操作系统原理;学编程,写脚本;网络协议;数据库的设计;测试理论;测试常用方法
a)什么是压力机:
J2EEB/S结构的
b)中间件:
搭建环境所用到的软件,如Tomcat…
c)
d)主流操作系统包括:
windowsSever2003/2008、Linux、Axi(IBM)、HP/AU(HP)。
需要调优的是内核参数(内存参数)、资源
e)2G内存可否模拟500个用户?
如果以进程方式模拟,一个用户占用4M内存,那么刚好达到2G,可是压力机中还要运行其他程序占用内存,所以不够。
如果以线程方式,一个用户占用0.5MB,就可以,但是线程还有其他弊端…
f)网络应该从哪些方面调优:
影响网络的因素是带宽(又叫吞吐量),带宽又受什么影响?
交换机的工作方式有半双工和全双工、响应时间的因素是什么
2.为什么要做性能测试:
3.如何做性能测试:
4.做性能测试应具备的条件:
人还是机器?
熟悉主流操作系统原理(书:
操作系统的精髓与设计),数据库的结构
功能自动化测试:
QTP(脚本用VBS);Selenium(脚本可以用VBS、JS、Python、Perl)
QTP升级了,改名为UFT(仍然只支持VBS)。
QTP的前身是winRunner;UFT、RFT(它的前身是RationalRobot)、winRunner、QARun、testcomplete(测试delphi语言的)、silkperformance。
编程用VBS入门,然后学习Python
接口测试的工具:
fitness、iTP(51的工具)
单元测试工具:
Junit、Cppunit、PHPunit、Fyunit
参看文件0223性能测试笔记文件夹下的文件“常用测试工具简介.pdf”
5.性能测试用LR,LR用类C语言/JAVA,性能测试工具下一代RPT,R是Rational的缩写,IBM公司的产品,支持JS和Python语言;未来性能测试工具Jmeter,支持JAVA和Python语言;QALoad(Testcomplete公司);WAS(微软的);winRunner(既可做功能也可做性能);
6.做性能测试还要有网络知识:
了解协议、吞吐量(硬件)、响应时间
全网广播:
在局域网中呼叫
Arp:
地址解析协议
局域网中是通过MAC地址传输信息的
电脑如何得到IP的:
Dhcp:
分配ip地址的
Rarp:
反地址解析协议——已知本机MAC地址,通过rarp协议获取一个ip地址,并分配
半双工:
同一局域网内只允许两台电脑间通讯,即发送方不能再给其他的发送,也不能接受其他机器发来的东西,接收方同理
典型的三层B/S架构:
一条命令从浏览器发出后浏览器再显示出结果的经历过程:
所以LR只能测试出假时间,真时间的测试需要QTP+LR配合起来
响应时间:
DNS解析时间
DNS如何查找:
浏览器发出域名后,会在本地的hosts(如果要本地机快,就修改映射关系,该文件在C:
\WINDOWS\system32\drivers\etc下)查是否存在域名与ip的映射地址
本地缓存是什么?
DNS服务器,一般大公司都有独立的DNS和DHCP计算机
数据库关系:
七个范式(XX哪七个,了解)
主流数据库:
Oracle、DB2、Mysql(开源的)、SQLS;未来主流是Mysql,SQLS是入门
内存与缓存区别;显卡内存与显卡的显频,显卡是否独立区别
内存DDrIII
I/O读取速度
DNS如何自动获取ip?
如何直接到13级顶级域名?
静态获取ip,自动获取。
DHCP是否有广播功能,如果没有,那么自动获取也没用
如何获取DNS缓存中的内容:
在dos下输入ipconfig/displaydns>c:
\1.txt回车,再打开1.txt就可以看了
DNS如何找?
什么是公有IP,私有IP
出局域网关,要用NAT
如何查某域名的DNS:
nslookup
在上述界面输入欲知道的域名DNS的域名,
192.168——家庭用
172.16——小公司用
10….——私有…
IP级别?
后面会讲。
这个是IPv4标准里规定的一个机构或网络要连入Internet,必须申请公用IP地址。
但是考虑到网络安全和内部实验等特殊情况,在IP地址中专门保留了三个区域作为私有地址,其地址范围如下:
10.0.0.0/8:
10.0.0.0~10.255.255.255
172.16.0.0/12:
172.16.0.0~172.31.255.255
192.168.0.0/16:
192.168.0.0~192.168.255.255
一般情况下在局域网内配置私网IP出内网时转化为公网IP同外界通信。
注:
直接输入ip就不走DNS了
用户/客户提出原始需求,包括项目需求、产品需求;如用户提出QQ登录要快,但是未说并发还是其他…这里隐含了需求
B/S:
通过浏览器向服务器发请求,使用HTTP协议
C/S:
使用SOCKET协议向服务器发请求的,socket协议作用在哪一层?
参看TCP/IP协议卷3
七层协议:
应用层(HTTP层)、表示层、会话层、传输层、网络层、数据层、物理层。
TCP/IP:
前三层合并叫应用层,http作用在该层
传输层还是传输层
网络层叫互联网层
数据层和物理层叫网络接口层
LR的licence并发最高到6.5万,超过这个量的如何测试——自己写个简单的浏览器,
SOCKET协议在哪层?
DB大容量的确认,将数据分类,从哪几个维度入手:
用户数据、业务数据、系统数据
数据库如何测试:
数据库测试的是什么——容量!
所以首先要构造数据——用datafaction工具。
构造的数据要包括用户数据、业务数据、系统数据。
在哪里看过?
数据库达到百万级时需要测试。
用spotlight工具监控本地机性能,同任务管理器功能,与控制面板的性能维护——管理工具——性能有什么不一样,后者是干什么的?
同样也是监控的,同任务管理器中的一样,并且这里的可以导出某时段的监控情况
响应时间:
网络传输时间+服务器响应时间+客户端(屏蔽时间+DNS解析时间+链接时间)
上图:
blocked是屏蔽时间——即输入地址后敲回车
Connect是链接时间
DNS解析时间
上述三个时间是LR监控不到的,所以LR给的时间比实际返回时间小,需要用QTP获取这三个时间
上述是服务器接收并解析时间
浏览器接收结果后的渲染时间,LR也监控不到
客户端要检查网络连接,DNS解析,浏览器渲染(浏览器将html语言转换为图形界面)
IE6和IE8比哪个好?
IE6是排队功能(先接收…再CSS,最后JS),IE8是并发的,同时接收处理
下面是谷歌与XX首页加载时间的比较:
因为google需要在hk解析,所以浪费了些时间,为什么我们不觉得google很慢呢,它们做了什么,如何优化的呢?
方法一:
只要访问了google,就先一次性将常用的都下载了(即将所有css样式表压缩为一个包,动态压缩技术),用DOM技术,再用xml定位,这样保证只向服务器发了一次请求!
减少图片重复请求。
代码上的处理——下图光标所在处为变量,变量短、少——减少变量名的长度。
但是在维护上一定要注意,需要有文档,否则变量名的含义都不知道什么意思。
可以用QTP捕捉所有老板黄页的信息?
方法二:
Sina使用了分屏技术,即不是一次性将所有的都下载下来,而是鼠标滚动(windows操作系统中的消息机制处理的)到的地方才下载对应页面的内容。
安装时点击
,待出现输入密码界面,输入
即可
权威标志
软件是否好的衡量标准:
用户角度看响应时间快;网管看占用资源少(内存、CPU、I/O)研发算法看吞吐量——服务器单位时间处理的数据量,在这里是衡量开发的算法的。
作业:
性能测试分类有几种?
每种举个例子
接口对性能有什么要求?
HLD——LLD关系?
性能测试(PerformanceTesting)
原文摘要:
性能测试方法是通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生成性能要求。
即在特定的运行条件下验证系统的能力状况。
个人理解:
主要强调在固定的软硬件环境、确定的测试业务场景下,其主要意义是获得系统的性能指标。
负载测试(LoadTesting)
原文摘要:
在给定的测试环境下,通过在被测系统上不断增加压力,直到性能指标超过预定指标或某种资源使用已经达到饱和状态,目的是了解系统性能容量和处理能力极限。
负载测试的主要用途是发现系统性能的拐点,寻找系统能够支持的最大用户、业务等处理能力的约束。
个人理解:
也可以理解为扩展性测试(ScalabilityTesting),即在固定测试环境,在其
它测试角度(负载方面)不变的情况下,变化一个测试角度并持续增加压力,查看系统的性能曲线和处理极限,以及是否有性能瓶颈存在(拐点)。
主要意义是从多个不同的测试角度去探测分析系统的性能变化情况,配合性能调优。
测试角度可以是并发用户数、
业务量、数据量等不同方面的负载。
压力测试(StressTesting)
原文摘要:
测试系统在一定饱和状态下系统能够处理的会话能力,以及是否出现错误,
一般用于稳定性测试。
个人理解:
可以理解为资源的极限测试。
测试关注在资源处于饱和或超负荷的情况下,
系统能否正常运行,是一种在极端压力下的稳定性测试。
其主要意义是通过测试调优保证系统即使在极端的压力情况下也不会出错甚至系统崩溃。
网友补充:
压力测试的目的是调查系统在其资源超负荷的情况下的表现,尤其是对系统的处理时间有什么影响。
这类测试在一种需要反常数量、频率或资源的方式下执行系统。
目标是通过极限测试方法,发现系统在极限或恶劣环境中自我保护能力。
主要验证系统的可靠性。
配置测试(ConfigurationTesting)
原文摘要:
通过对被测系统的软硬件环境的调整,了解各种不同环境对性能影响的程度,从而找到系统各项资源的最优分配原则。
个人理解:
主要用于性能调优,在经过测试获得了基准测试数据后,进行环境调整(包括硬件配置、网络、操作系统、应用服务器、数据库等),再将测试结果与基准数据进行对比,判断调整是否达到最佳状态。
并发测试(ConcurrencyTesting)
原文摘要:
模拟并发访问,测试多用户并发访问同一个应用、模块、数据时是否产生隐藏的并发问题,如内存泄漏、线程锁、资源争用问题。
个人理解:
测试目的并非为了获得性能指标,而是为了发现并发引起的问题。
可靠性测试(ReliabilityTesting)
原文摘要:
通过给系统加载一定的业务压力的情况下,让应用持续运行一段时间,测试系统在这种条件下是否能够稳定运行。
个人理解:
需要和压力测试区分开,两者的测试环境和测试目的不一样。
压力测试强调在资源极限情况下系统是否出错,可靠性测试强调在一定的业务压力下长时间(如
24×7)运行系统,关注系统的运行情况(如资源使用率是否逐渐增加、响应是否是否越来越慢),是否有不稳定征兆。