导图社区 性能培训知识点
性能知识架构包含业务及架构知识、工具知识、系统知识、编程知识。具体内容包括性能测试类型,工具等、实战siege性能测试、HTTP协议、测试教程网的介绍、HTTP消息、cookie特性2、jemter录制回放、jemter插件机函数介绍等。
编辑于2021-06-01 18:04:21性能知识架构包含业务及架构知识、工具知识、系统知识、编程知识。具体内容包括性能测试类型,工具等、实战siege性能测试、HTTP协议、测试教程网的介绍、HTTP消息、cookie特性2、jemter录制回放、jemter插件机函数介绍等。
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
Python高级应用技巧。Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。
社区模板帮助中心,点此进入>>
性能知识架构包含业务及架构知识、工具知识、系统知识、编程知识。具体内容包括性能测试类型,工具等、实战siege性能测试、HTTP协议、测试教程网的介绍、HTTP消息、cookie特性2、jemter录制回放、jemter插件机函数介绍等。
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
Python高级应用技巧。Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。
性能知识笔记
第一节 关于本性能课程介绍
性能知识架构
业务及架构知识
了解自己所属产品或项目的业务逻辑及软件架构,业务决定架构,一定不要脱离业务去谈架构和学习架构
工具知识
每种性能测试工具都有其适合的应用场景,比如siege适合简单的页面benchmark,jmeter适合复杂场景的性能测试等
系统知识
了解你的被测操作系统,了解系统性能指标,可以通过指标指出系统瓶颈
编程知识
购买云服务器
搭建测试环境等介绍
第二节 性能测试类型,工具等
测试类型
benchmark
开发者对性能进行快速验证的方式,可以忽略
基准测试
http和https测试对比,以http为标准进行测试https, 一般https性能要差一些相对http而言
负载测试
满载测试:在服务器没有垮掉的情况下不断添加用户,验证最大的满载指标,一般查看“吞吐量”的指标
稳定性测试:长时间的运行,查看吞吐量,Cpu,服务器,相应时间有没有增长,内存有没有泄露,等各个指标的数值
压力测试
不断施压,看压垮指标
性能工具介绍及对比
loadrunner
jemter
locust
性能工具组成
压力生成器
结果采集器
负载控制器
系统资源监控器
结果分析器
性能测试的需求,搭建测试环境,工具及分析
第三节 实战siege性能测试
环境:服务器: Ubuntu 14.04.5 LTS 、 siege版本: 4.0.2
安装siege
更新系统:sudo apt-get update && sudo apt-get upgrade --show-upgraded
下载最新版本的siege:wget http://download.joedog.org/siege/siege-latest.tar.gz
解压并进入siege路径:tar -zxvf siege-latest.tar.gz cd siege-*/
如果没有安装编译工具,请先安装:sudo apt-get install build-essential
编译安装:./configure make sudo make install
创建配置文件:siege.config
修改配置文件:打开~/.siege/siege.conf文件,修改logfile选项 logfile = $(HOME)/siege.log
场景分析
使用siege对ur.tencent.com进行加压: 模拟20个用户同时访问 一共跑3个循环
实现命令:siege -c 20 -r 3 http://ur.tencent.com
测试结果:
Transactions: 600 hits Availability: 90.91 % Elapsed time: 14.19 secs Data transferred: 34.26 MB Response time: 0.28 secs Transaction rate: 42.28 trans/sec Throughput: 2.41 MB/sec Concurrency: 11.63 Successful transactions: 600 Failed transactions: 60 Longest transaction: 7.05 Shortest transaction: 0.02
Transactions: siege对服务器的访问次数。如果页面发生了redirect,那么siege会将跳转过的请求算成是另一个transaction Availability: socket连接的成功率。算法是,如果页面发生了timeout,4xx,5xx,那么该请求算是失败请求,成功率就等于(所有请求-失败请求) / 总请求数 Elapsed time: 所有请求耗费的时间 Data transferred: 所有请求传输的数据量,包括请求的headers和content。所以这个数值可能比server端统计的数值要大一点 Response time: 平均响应时间 Transaction rate: Transactions / Elapsed time Throughput: 每秒平均传输的数据量 Concurrency: 平均并发的请求数 Successful transactions: 所有status code < 400的transactions数量 Failed transactions: 所有status code >= 400的transactions数量 Longest transaction: 最耗时的请求时间 Shortest transaction: 最短单个请求时间
siege的常见参数
需求1: 使用siege对多个页面进行加压
场景:我希望并发数是5,持续运行1分钟。 http://ur.tencent.com/categories/7 http://ur.tencent.com/categories/7/?page=2 http://ur.tencent.com/categories/7/?page=3
执行命令:siege -c 5 -t 1M -f urls.txt
需求2: 保存siege日志
场景:对ur.tencent.com的下面几个页面进行加压,以便暴露系统的瓶颈,并将结果记录到日志。 http://ur.tencent.com/categories/7 http://ur.tencent.com/categories/7/?page=2 http://ur.tencent.com/categories/7/?page=3
执行命令:siege -c 5 -t 1M -f urls.txt --log=result.csv
说明: 1. csv文件可以直接用excel打开 2. 可以使用命令sz result.csv将结果文件拷贝到本地 3. 如果没有sz命令使用sudo apt-get intall lrzsz安装既可
需求3: 压测时候启用gzip压缩
说明: 1. gzip压缩就是指服务器在返回请求时候先将请求压缩一下,以减少response的体积,客户端收到response之后会自行解压,这是提升传输速度的一般做法。 2. 我们仍然对上面的url进行加压,不过这次我们需要使用gzip。 3. 在请求头中加入Accept-Encoding:gzip就可以告诉服务器返回压缩后的response
执行命令:siege -c 5 -t 1M -f urls.txt -H "Accept-Encoding:gzip" --log=result_gip.csv
需求4:对移动站点进行压测
说明: 对www.baidu.com移动版本进行加压。其实只需要发送相应的user-agent,服务器就会根据这个值判断浏览器是移动版还是桌面版。我们只需要发送iphone的user-agent给服务器
模拟iphone5试一下,iphone的user-agent可以在这里找到。 执行命令:siege -c1 -r1 -A"Apple-iPhone5C2/1001.525" http://www.baidu.com
第四节 HTTP协议
HTTP协议概述(HTTP是一种能够获取如HTML这样网络资源的协议)
HTTP协议的参与者
客户端: user-agent
Web服务端
Proxies
HTTP 报文
请求
请求方式:get/post
响应
状态码/状态信息
实战chrome开发者工具(windows按f12)
第五节 测试教程网的介绍
测试教程网:www.testclass.net
浏览器前端:XHR查看接口数据:ajax
实战yslow前端性能测试
安装yslow:浏览器小插件,扩展程序安装即可
场景:对ur.tencent.com的前端页面进行性能测试
实战:点击yslow的扩展程序图标,点击Run Test按钮
HTTP缓存(不支持缓存,不缓存内容,私有缓存和公共缓存,缓存过期,缓存验证)
第六节 HTTP消息
概念:HTTP Cookie(也叫Web cookie或者浏览器Cookie)是服务器发送到用户浏览器并保存在浏览器上的一块数据
http cookie作用
会话状态管理(如用户登录状态、购物车)
浏览器行为跟踪(如跟踪分析用户行为)
个性化设置(如用户自定义设置)
查看cookie
使用chrome查看cookie
Fiddler
cookie的特性1
创建Cookie
服务器使用Set-Cookie响应头部向用户代理(一般指浏览器)发送Cookie信息。一个简单的Cookie可能像这样: Set-Cookie: <cookie名称>=<cookie值>
第七节 cookie特性2
会话期
浏览器关闭之后它会被自动删除,也就是它仅在会话期间有效
有些浏览器提供了会话恢复的功能,这种情况下即便关闭了浏览器会话期Cookie也会被保存
持久Cookie
和关闭浏览器便失效不同,持久Cookie可以指定一个特定的过期时间(Expires)或者有效期(Max-Age)。 Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT;
安全和HttpOnly类型Cookie
Cookie的作用域
JavaScript通过Document.cookies访问Cookie
安全
会话劫持和XSS
如果窃取了Web应用的Cookie,可能导致授权用户的会话受到攻击
HttpOnly类型的Cookie由于阻止了JavaScript对Cookie进行访问而能在一定程度上缓解此类攻击。
跨站请求伪造(CSRF)
追踪和隐私
第三方Cookie
僵尸Cookie和删不掉的Cookie
Jmeter介绍及操作演示
测试计划
线程组
测试请求类型
监听器
第八节 jemter录制回放
jemter主要插件介绍
配置元件
取样器
逻辑控制器
监听器
录制和回放
录制模式- 网络设置代理 - 浏览器兼容模式
回放
第九节 jemter插件机函数介绍
随机生成关键字;随机变量配置元件;用户自定义变量实战
函数的讲解1
插件介绍
测试计划
线程组
录制控制器
事务控制器
HTTP请求取样器
WorkBench,
HTTP信息头管理器
第十节 函数的详细讲解2
第十一节 从csv文件中提取关键字
为什么不是excel而是CSV
excel:excel私有格式,很多不兼容
CSV:CSV公有格式,轻量级,兼容
CSV Data Set Config插件
CSV数据的执行顺序
jemter实战wordpress1
安装
多用户登录
第十二节 jemter实战wordpress2
多用户登录
第十三节 jemter实战wordpress3
创建文章
第十四节 jemter实战wordpress4
创建及编辑文章
删除文章
第十五节 jemter实战wordpress5
测试项目smile_task实战
新用户注册(接口操作)
断言
异常
查看文章:随机选取查看
第十六节 登录及jwt鉴权知识
鉴权概念
知识扩展:https://www.jianshu.com/p/576dbf44b2ae
鉴权登录
每一次登录鉴权和授权同时进行
原理:用户先进行登录,服务器返回数据token,拿出对应的token,下一次操作时放到head里面发出去
第十七节 登录及jwt鉴权实战
jemter实战登录并获取token
操作说明:提取json里的数据,相应数据里面(json path Tester),;json path Expression进行提取(格式"$.token );Json Extractor插件进行变量操作使用
增删改查 文章
第十八节 jemter前置处理器
NonGUI模式(节省系统资源,能够产生更大的负载,通过命令行参数对测试场景进行更精细的配置)
NonGUI执行命令:jmeter -n -t scripts/c7/all_tasks.jmx -l scripts/c7/all_tasks_res.jtl -e -o scripts/c7/report
参数详解
-n 表示使用non-gui模式 -t [JMX测试脚本的名称]. -l [保存JTL 测试结果文件的路径]. -j [JMeter log文件的路径]. -r 在JMeter的远程机器上运行测试,远程机器由 property " remote_hosts "指定 -R [远程机器列表] 在指定的远程机器上运行测试 -g [CSV 文件路径] 通过csv文件来创建dashboard报告 -e 运行结束后创建dashboard报告 -o 在哪个目录创建dashboard报告,该目录必须为空或者不存在 代理相关的选项 -H [代理服务器的名称或ip] -P [代理服务器端口]
多用户登录:用户自定义变量 和 JSR223 Processor插件
代码随机生成手机号
第十九节 分析测试报告及Liunx性能知识APDEX
第二十节 linux性能指标
linux操作系统
性能及监测工具
进程,线程,死锁概念及属性
第二十一节 linux系统...理论知识
第二十二节 网络系统知识..理论知识
uptime dmesg | tail vmstat 1
第二十三节 60s迅速发现性能问题2
mpstat -P ALL 1 pidstat 1 iostat -xz 1 free -m sar -n DEV 1 sar -n TCP,ETCP 1 top
第二十四节 性能测试基础知识
确保系统ok
时间充足
代码冻结
设计测试环境