了解性能测试

性能测试不仅能够定位、分析问题,还要把握系统性能变化趋势;性能测试工程师能够帮助解决性能问题,搞定测试过程中的各种不合理配置,给出专业的优化建议。

第一章 性能方向职业发展

软件测试职业路线分为以下三个方向:

(1)业务路线:常见业务路线的职位有OA经理、业务专家、产品经理、产品总监、行业咨询顾问等

(2)技术路线:掌握编程技术、拥有业务经验,成为自动化测试工程师、性能测试工程师、软件开发工程师、安全测试工程师、系统分析师、测试总监、研发总监等

(3)管理路线:积累业务知识或者提高技术储备,能够出色地完成本职工作,负责带领团队;岗位一般有测试leader、测试主管、测试经理及测试总监

除了测试还需要掌握的基本功
(1)需求:性能需求分析是做系统性能测试前必做的,不然没有方向

(2)代码:通过走读代码发现逻辑上的缺陷、写法上的繁琐带来的性能问题;补充数据库知识、中间件知识(程序部署在中间件上)、操作系统及硬件知识(中间件运行在操作系统上)

(3)运维:测试自动化不仅包括功能测试自动化、也包括性能测试自动化以及测试环境自动化(持续集成),掌握运维手段也变成必要

性能测试技术树:

 测试工具--常见难点

(1)用户和业务模型分析搭建

(2)合适的脚本开发(大部分初学者不根据用户和业务模型来开发脚本,认为要回归成功即可)

(3)合适的需求分析转化为场景设计(大部分初学者不知道如何根据需求进行场景设计)

(4)大容量系统的数据生成和使用

(5)大型系统的性能压力负载和实施

(6)云计算的负载生成和实施

测试基础-常见难点

(1)评估需求

(2)负载建模(用户与业务模型)

(3)性能压力生成的原理和并发等之间的关系

(4)性能测试用例

(5)新系统需求分析

(6)容量规划

(7)性能测试策略

服务器性能诊断知识

操作系统:了解系统调用如何执行、CPU如何调度线程、有限大小的内存如何影响性能、文件系统如何处理I/O

(1)Linux:服务器的操作系统,搭建环境、性能诊断

(2)Windows Server:服务器操作系统,中小型公司使用较多

数据库:是系统存储处理的最重要手段,很大一部分性能问题都牵扯到数据库

(3)Oracle:关系数据库管理系统,可移植性好、使用方便、功能强,是一种高效率、可靠性好的适应高吞吐量的数据库解决方案

(4)MySql:轻量型开源数据库

(5)NoSql:泛指非关系型数据库,解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题

①键值数据库-Redis:适用于数据变化快且数据库大小可预见的应用程序,股票、数据分析、实时数据搜集、通信等

②列存储数据库-Cassandra:混合型的非关系数据库,在网络社交云计算方面应用较理想,读操作比写操作快很多,较适应于银行、金融、数据分析等领域

③文档型数据库-MongoDB、CouchDB:键值数据库升级版,允许之间嵌套键值,而且文档型数据库比键值数据库的查询效率更高

常见难点

(1)进程、线程任务之间的区别

(2)线程的中断优先和原理

(3)进程的生命周期

(4)上下文切换

(5)I/O密集型和CPU密集型工作负载之间有什么区别

(6)生产环境和测试环境之间换算

(7)关系型数据库体系结构和逻辑优化与非关系型数据库体系结构和逻辑优化

(8)事务数据库和分析数据库的使用

(9)数据关系建模与设计

(10)TOP N SQL诊断和优化(执行路径、索引和表链接优化等)

(11)阻击和根治阻塞和死锁

(12)热点防范和定位优化

(13)业务数据批量缓存化\异步化

(14)数据库配置优化

性能调优技能-常见难点

(1)系统硬件资源(CPU、网络、内存、IO)相互之间的关系及原理

(2)选择可靠性能指标及指标之间的关联和判定方法

(3)永不宕机的实现原理和常见错误

(4)排队系统与延迟及缓存的优化关系

(5)优化的成本和性价比

(6)业务优化的操作实施

(7)多系统串联原理及测试隔离

全栈性能测试修炼宝典-JMeter实战笔记(一)的更多相关文章

  1. 全栈性能测试修炼宝典-JMeter实战笔记(三)

    JMeter体系结构 简介 JMeter是一款开源桌面应用软件,可用来模拟用户负载来完成性能测试工作. JMeter体系结构 X1~X5是负载模拟的一个过程,使用这些组件来完成负载的模拟 Y1:包含的 ...

  2. 全栈性能测试修炼宝典-JMeter实战笔记(二)

    性能测试初体验 性能测试实质:利用工具去模拟大量用户操作来验证系统能够承受的负载情况,找出潜在的性能问题,分析并解决:找出系统性能变化趋势,为后续的扩展提供参考 测试分类 测试内容中,负载测试.压力测 ...

  3. 《全栈性能测试修炼宝典JMeter实战》学习记录

    说明:原书中jmeter版本为2.x,我的笔记中截图为5.x

  4. 全栈性能测试修炼宝典--Jmeter实战(三)

    JMeter体系结构 1.JMeter体系结构 (1)名词解释 元件:JMeter工具菜单中的一个子菜单,比如HTTP请求.事务控制器.响应断言就是一个元件. 组件:一组元件的集合,比如逻辑控制器中有 ...

  5. 全栈性能测试修炼宝典--Jmeter实战(二)

    性能测试初体验 1.测试分类 从图中可以看出,性能测试在整个软件测试环节中占了50%的内容,比如负载测试.压力测试.性能测试.大数据量测试.恢复测试.内容泄露测试.竞品测试(比较测试)和可靠性测试. ...

  6. 全栈性能测试修炼宝典--Jmeter实战(一)

    性能测试方向职业发展 1.软件测试发展路线 我们可以暂且把软件测试职业路线分为3个方向,分别是业务路线.技术路线.管理路线:4个象限,分别为执行层.中层.中高层过渡.高层. (1)业务路线 常见业务路 ...

  7. 老男孩python3.5全栈开发第9期+课件笔记(1-15部全 共125天完整无加密)

    点击了解更多Python课程>>> 老男孩python3.5全栈开发第9期+课件笔记(1-15部全 共125天完整无加密)大小:236G 此课程为老男孩全栈开发最新完结课程,适合零基 ...

  8. JMeter实战(一) 体系结构

    此为开篇,介绍JMeter的组成结构,阅读后对JMeter形成整体认知和初步印象. 为了便于后续讲解,先明确下2个术语. 元件:如HTTP请求.事务控制器.响应断言,就是一个元件. 组件:如逻辑控制器 ...

  9. JMeter实战(三) 界面使用

    JMeter 有 2 种运行方式,一种是 CLI,一种是 GUI,本篇文章就来介绍一下后者,图形用户界面,因为后续文章大部分都是基于 GUI 的. 本文演示的是英文版,想用中文的同学可以在菜单栏点击 ...

随机推荐

  1. 基于注解的实现获取微信openId1

    最近在弄微信支付,网站有好几种不同类型的"商品",去每个支付的页面都需要获取用户的OpenId,而且获取openid要在微信的浏览器去发送请求,如果有三个不同类型的付款页面就需要写 ...

  2. 表单综合HTML

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  3. JavaDailyReports10_06

    今日收获: 一.所有引用类型变量的初始化一定要使用new 关键字定义声明,空指针异常的错误原因可能是变量没有初始化导致的. 每一个类体的数据成员一定要在实例化的同时赋值,用一个实例化的类实现问题中最小 ...

  4. 详解Redis中两种持久化机制RDB和AOF(面试常问,工作常用)

    redis是一个内存数据库,数据保存在内存中,但是我们都知道内存的数据变化是很快的,也容易发生丢失.幸好Redis还为我们提供了持久化的机制,分别是RDB(Redis DataBase)和AOF(Ap ...

  5. rm(操作系统的删除文件)与git rm的区别

    git rm:1.删除了一个文件2.把这个删除的文件纳入暂存区如果想要恢复这个文件,则需要做2个操作a.git reset HEAD file_name --将文件从暂存区恢复到工作区b.git ch ...

  6. AngularJS 遗留项目的升级改造之路(一)

    目录 序言 遗留项目概述 条件限制下的升级原则 升级改造的演进方向 遇到的主要难点 小结 参考 1. 序言 Angular 官方网站针对 从 AngularJS 升级到 Angular 提供了比较详细 ...

  7. Ubuntu和UOS+mips64l龙芯处理器安装编译Openssl

    1.下载openssl开发包文件,我这里下载的是openssl-1.1.1f.tar.gz:并放在/data/home/dengchaoqun/openssl1.1.1目录下 2.终端切换到当前目录下 ...

  8. Java入门随手记-DOS命令

    DOS 打开cmd的方式 开始+系统+命令提示符 win键+r 输入cmd打开控制台(推荐使用) 在任意的文件夹下面,按住shift键+鼠标右键点击,在此次打开命令窗口 资源管理器的地址栏前面加上cm ...

  9. 项目实战--解决运行sql文件错误

    说明: 新项目启动,通过公司运维同学给的数据库脚本在Navicat中建项目的数据库,运行脚本时报错 Error Code: 1227. Access denied; you need (at leas ...

  10. Java 使用线程池执行若干任务

    在执行一系列带有IO操作(例如下载文件),且互不相关的异步任务时,采用多线程可以很极大的提高运行效率.线程池包含了一系列的线程,并且可以管理这些线程.例如:创建线程,销毁线程等.本文将介绍如何使用Ja ...