1) 了解协议的概念
2) 协议的选择
网络协议:计算机网络中进行数据交换而建立的规则、标准或约定的集合
Web(HTTP/HTML)(应用层协议)
http协议:用于从WWW服务器传输超文本到本地浏览器的传送协议
Sockets(TCP/IP网络的API)
.net协议
web services
常用数据库协议(ODBC,ORACLE,SQLSERVER 等
邮件(SMTP、pop3)
Simple Mail Transfer Protocol
Post Office Protocol - Version 3
其它协议
ftp文件传输协议
HTTP协议特点:
1.支持客户/服务器模式。2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
例子:
利用fiddler抓包
http://zhmai.com/smartwater/index.html
1)LR的原理和使用流程介绍
性能测试原理:
1、用户行为模拟
不同用户使用不同的数据(参数化实现)
多用户并发操作(集合点)
用户请间的依赖关系(关联)
请求剑的延时时间(思考时间)
2、 性能指标监控
请求响应时间监控
服务器处理能力监控(事务吞吐量)
服务器资源利用率监控(计数器接口)
3、性能调优
通过指标的监控发现系统存在的性能缺陷,利用分析工具定位并修正性能问题。Loadrunner本身并不提供任何性能调优的功能。但在其Analysis组件中提供了常见性能分析的策略及整合报告功能。
使用流程:
1、录制脚本
2、修改脚本(参数化,关联,事务)
3、创建场景(controller将模拟脚本分发到负载生成器,负载生成器根据预先对设定对系统进行压力)
4、执行场景
1) Virtual User Generator(Vugen)— 创建脚本
2) Controller — 设计、运行和监控负载测试场景
3) Analysis — 分析场景,查看、分析和比较性能结果
4) Load Gernerator—负载生成器
1) LR的术语介绍
1. 场景(Scenario):场景即测试场景,在LoadRunner中主要表现为Controller中设计与执行用例中的用户场景。主要工作有,在Controller中选择虚拟用户脚本、设置虚拟用户数量、配置虚拟用户运行时的行为、选择负载发生器(Load Generator)、设置执行时间等。
单一场景、混合场景
2. 负载发生器(Load Generator):用来产生压力的真实机器,受Controller控制,可以使用户脚本在不同的主机上执行。在性能测试工作中,通常由一个Controller控制多个Load Generator以对被测试系统进行加压。
3. 虚拟用户(Virtual User/Vuser):对应于现实中的真实用户,使用LoadRunner模拟的用户称为虚拟用户。其本质是通过虚拟用户脚本来模拟真正用户的行为。
4. 虚拟用户脚本(Vuser scrīpt):通过Vuser Generator录制或开发的脚本。这些脚本用来模拟用户的行为。
5. 事务(Transaction):LoadRunner通过事务来衡量服务器的性能。在业务上事务通常是用户的一个或一系列操作,代表一定的功能;而在程序上则表现为一段代码区块。测试人员可以将一个或多个操作步骤定义为一个事务,以便衡量这部分的用户并发响应时间。
例如:用户可以把邮件功能模块的“发送”操作定义为一个事务,以分析该操作的执行性能。
6. 思考时间(Think Time):即用户思考时间,为了在模拟时更接近用户的真实行为而引进的概念。在实际中,用户进行一系列操作后往往会进行处理,例如浏览网页,而在处理过程对服务器是没有压力的。因此,在虚拟用户脚本中用函数lr_think_time(double time)来模拟用户处理过程,执行该函数时用户线程会按照相应的time值进行等待。
7. 集合点(Rendezvous):对应于真实用户中的并发点。LoadRunner通过集合点实现了真正意义的并发。集合点在虚拟用户脚本中对应函数lr_think_time(const char*rendezvous_name),当执行到该函数时会按照场景的并发策略来执行。
8. 事务响应时间:事务响应时间是一个统计量,是评价系统性能的重要参数。定义好事务后,在场景执行过程和测试结果分析中即可以看到对应事务的响应时间。通过对关键或核心事务的执行情况进行分析,可以快速定位性能问题。
9、每秒事务数TPSTransactions per Second:显示在场景运行的每一秒钟,每个事务通过、失败以及停止的数量,使考查系统性能的一个重要参数。
10、Total Transactions per Second(每秒通过事务总数) :“每秒通过事务总数”显示在场景运行时,在每一秒内通过的事务总数、失败的事务总署以及停止的事务总数。
11、Hits per Second(每秒点击次数):“每秒点击次数”,即使运行场景过程中虚拟用户每秒向Web服务器提交的HTTP请求数。
12、Throughput(吞吐率) :“吞吐率”显示的是场景运行过程中服务器的每秒的吞吐量。其度量单位是字节,表示虚拟用在任何给定的每一秒从服务器获得的数据量。