失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 【性能测试】Jmeter性能测试实战

【性能测试】Jmeter性能测试实战

时间:2018-11-01 03:17:06

相关推荐

【性能测试】Jmeter性能测试实战

文章目录

一、数据驱动性能测试1.1 数据驱动的理念2. 特点3. 好处4. 要求5. 数据驱动的使用场景1.2 jmeter中的数据驱动二、数据库性能测试开发性能测试脚本及执行三、接口性能测试3.1 概述3.1.1. 接口性能测试的目标及范围3.1.2. 常见的接口协议在协议栈中的位置3.2 HTTP协议性能测试3.2.1. http协议响应码3.2.2. http协议请求响应模型3.2.3. 常用http协议的请求方式3.2.4. get请求与post请求3.3 https协议性能测试3.3.1. https协议特点3.3.2. https协议Jmeter接口测试实战3.4 ftp协议性能测试3.4.1. ftp协议特点3.4.2. ftp协议Jmeter接口测试实战3.4.3 使用http协议进行文件上传、下载3.4 性能测试用例及测试报告设计

一、数据驱动性能测试

1.1 数据驱动的理念

定义 从数据文件中读取测试数据,驱动测试过程的一种测试方法数据驱动可以理解为更高级的参数化

2. 特点

测试数据与测试代码分离数据控制过程

3. 好处

减少测试代码量降低脚本开发和维护的成本便于用例的修改和维护(不用修改脚本)

4. 要求

较强的代码能力较强的分层架构设计思维对开发框架要有一定的了解

5. 数据驱动的使用场景

复杂的业务流程根据业务场景分流符合条件的并发场景

1.2 jmeter中的数据驱动

控制方式

参数化:推荐使用数据库调用的方式进行参数化、也可以使用CSV文档等方法逻辑控制器:分流,一般使用IF控制器可以满足大部分需求

循环控制器,秒杀,不停的刷新页面

一个简单的场景:

登录后男人浏览电子商品登录后女人浏览化妆品

表设计:

jmeter

连接数据库JDBC

__V 字符串拼接

Debug Sampler

计数器

Loop Controller

二、数据库性能测试

开发性能测试脚本及执行

用例准备:使用sql模拟用户场景

步骤:

使用JDBC Connection Confuguration配置mysql配置

JDBC Request写sql脚本

配置监控环境,对SQL运行时的性能进行监控

具体参考【性能测试】linux服务器监控性能测试

三、接口性能测试

3.1 概述

3.1.1. 接口性能测试的目标及范围

发现应用程序的性能瓶颈 发现数据库的性能瓶颈(关注哪一个接口响应比较慢,往下一层,代码级别) 应用程序各项性能指标 数据库各项性能指标

3.1.2. 常见的接口协议在协议栈中的位置

HTTP:超文本传输协议

HTTPS:安全超文本传输协议

FTP:文件传输协议

IP:互联网协议

TCP:网络控制协议

UDP: 用户数据协议

3.2 HTTP协议性能测试

3.2.1. http协议响应码

1xx:信息响应类,表示接收到请求并且继续处理2xx:处理成功响应类,表示动作被成功接收、理解和接受3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理4xx:客户端错误,客户请求包含语法错误或者是不能正确执行404:请求资源错误5xx:服务端错误,服务器不能正确执行一个正确的请求

3.2.2. http协议请求响应模型

一次请求的生命周期

登录场景模型

1. 客户端发起请求到api接口层

1.1 用户在客户端填写用户名和密码,点击登录,发送请求

2. api接收到客户端发起的用户请求

2.1 api对业务逻辑进行验证

2.1.1 验证用户名和密码是否合法

比如:用户名要求必须为真实手机号码(11位,1开头,第二位3456789)

如果验证失败,即用户名不合法,那么需要给客户端返回响应码

比如码值为1, 2, 3

1代表用户名格式错误

2.代表用户名或密码错误

3.代表密码格式错误

3. api会将用户输入的数据发给db层

Create、Read、Update、Delete(一般不做物理删除,使用逻辑删除update)

eg:select * from user where userName= ’ ’ and password = ’ ';

3.1 数据库查询成功则返回1,失败则返回0

4. DB会将返回的查询数据条目数给api

5. api返回成功或失败的状态码给客户端

6. 客户端将返回信息提示给用户

简单分层思想

客户端

功能测试、性能测试、自动化测试

接口层

接口测试、功能测试、性能测试、自动化测试

数据库层

可以将开始人员使用到的sql语句单独拿出来进行性能测试

3.2.3. 常用http协议的请求方式

HTTP/1.1协议中共定义了八种方法(有时也叫“动作”):来表明Request-URL指定的资源不同的操作方式

OPTIONS

返回服务器针对特点资源所支持的HTTP请求方法,也可以利用向web服务器发送‘*’的请求来测试服务器的功能性。HEAD

向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。

这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息。GET

向特定的资源发出请求。

注意:GET方法不应当被用于产生“副作用”的操作中,例如在Web Application中。其中一个原因是GET请求可能会被网络蜘蛛等随意访问,增加资源浪费。POST

向指定资源提交数据进行处理请求(例如提交表单或者上传文件),数据被包含在请求体中。

POST请求可能会导致新的资源建立和/或已有资源的修改。PUT

向指定资源位置上传其最新内容DELETE

请求服务器删除Request-URL所标识的资源TRACE

回显服务器收到的请求,主要用于测试或诊断CONNECT

HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。注意:

1)方法名称是区分大小写的,

当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405(Method Not Allowed);

当服务器不认识或者不支持对应的请求方法时,应当返回状态码501(Not Implemented)。

2)HTTP服务器至少应该实现GET和HEAD/POST方法,其他方法都是可选的。

3.2.4. get请求与post请求

get请求:

url:http://127.0.0.1:8080?username=zhangshan&password=123post请求:

url:http://127.0.0.1:8080

请求体

{

[

“username”:“zhangshan”,

“password”:“123”]

}

3.3 https协议性能测试

3.3.1. https协议特点

- 默认端口:443

- 安全性的ssl加密传输协议

- 以安全为目标的http协议通道,可以理解为http协议的安全版

3.3.2. https协议Jmeter接口测试实战

3.4 ftp协议性能测试

3.4.1. ftp协议特点

- 默认端口:21和20

- http与https都是面向网页的,而ftp是面向文件的

- ftp使用两个并行的tcp连接来进行文件传输

- ftp使用的两个并行tcp连接为控制连接和数据连接

- 控制连接负责两个主机之间传输控制信息,如用户表示、口令,发送的命令等,运行端口为21

- 数据连接用于实际传输一个文件,运行端口为20(主动模式)

3.4.2. ftp协议Jmeter接口测试实战

linux搭建ftp服务器使用jmeter请求

3.4.3 使用http协议进行文件上传、下载

报错MIME原因 文件类型错误,参考MIME参考手册 没有勾选。。。。

3.4 性能测试用例及测试报告设计

测试用例几要素 被测系统及版本:不同系统、版本性能瓶颈及要求不同测试数据测试场景(包含异常场景)预期结果预期性能指标 性能测试报告几要素 被测系统版本号运行环境、配置测试场景(并发定义)预期性能指标实际结果测试结论(是否通过,如不通过说明瓶颈;如通过说明最大性能指标)测试人员容量规划

如果觉得《【性能测试】Jmeter性能测试实战》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。