性能测试

性能测试方法

匿名 (未验证) 提交于 2019-12-02 23:40:02
并发测试: 并发测试(Concurrency Testing)方法通过模拟用户的并发访问,测试多用户并发访问同一应用、同一个模块或者数据记录时是否 存在死锁或者其他性能问题。 特点: (1)这种性能测试方法的主要目的是发现系统中可能隐藏的并发访问时的问题。 该方法是通过并发的手段发现系统中存在问题的最常用的方法。 (2)该性能测试方法主要关注系统可能存在的并发问题,例如系统中的内存泄漏、线程锁和资源争用方面的问题。 内存问题: 1.是否有内存泄漏 2.是否有太多的临时对象 3.是否有太多的超过设计生命周期的对象 数据库问题: 1.是否有数据库死锁(Dead Lock) 2.是否经常出现长事务(Long Transaction) 线程/进程问题: 1.是否出现线程/进程同步失败 其他问题: 1.是否出现资源争用导致的死锁 2.是否没有正确处理异常(如超时)导致系统死锁 (3)该测试方法可以在开发的各个阶段使用,需要相关的测试工具配合和支持 2. 负载测试: 负载测试(Load Testing)方法通过在被测系统上不断增加压力,直到性能指标,例如"响应时间"超过预定指标或者某种资源使用 已经达到饱和状态。 这种测试方法可以找到系统的处理极限,为系统调优提供数据。在某些情况下,这种方法有时也被称为可量性测试(Scalability Testing). 特点: (1

小项目中的性能测试过程和系统调优(一)

匿名 (未验证) 提交于 2019-12-02 23:35:02
本周产品线内一个中小型项目临时提出性能测试需求,根据相关业务需要,我们对内网、外网核心业务接口进行了压测,主要问题和解决办法记录一下,以便后续的项目避免重复踩坑。 第一部分:测试之前我们需要了解的那些事 为了减少信息了解局限而导致的无效测试,需要提前对以下方面进行了解: 测试目标 :外部需要or公司内部需要 测试环境 准备& 测试数据 :是否用户真实线上环境,一般而言线上环境的网络、数据更加真实,更有说服力,但是需要考虑数据构造、压测对用户使用是否会产生影响,产生的数据是否可以清理 测试范围 :结合测试目标,确定测试范围。常见情况如: 如果项目组需要向客户提供性能测试报告:这种情况下,需要考虑测试环境,一般而言,用户希望看到的报告是基于实际环境给出的分析,因而需要在线上进行性能测试,数据和指标可以结合系统中收集到的数据以及根据历史数据进行评估。 如果内部系统需要优化,需要了解是否是对全系统优化,还是只针对部分模块优化,优化是否有明确的方向,比如链路优化、数据库优化、服务优化等,根据不同的优化目标,确定测试范围。 测试地点 :部分程序部署在客户内网,需要考虑在用户现场本地进行测试,需要提前了解:现场网络情况、安全要求、且与客户沟通确认得到允许,并预留出单独时间进行。建议内网测试工作提前进行,以应对现场可能遇到的临时问题。 测试指标 :需要与项目组的产品、开发

服务端测试和客户端测试区别

拈花ヽ惹草 提交于 2019-12-02 23:16:01
1.客户端测试 用户可以看到的,使用界面的, web 端,pc端,app,一般是在用户的机器上去做 2.服务端测试 服务端测试有两种:一种是直接对WEB或者APP的服务端进行测试;另一种是对更后端的数据库、缓存系统、中间件、文件系统等进行测试。 (1)应用场景 这里以银行转账为例。 用户A通过手机银行往用户B账户转账。 那么客户端这边在输入金额这一块肯定是需要做限制的,比如正数,小数点保留两位等。 但是服务端可能并没有做限制。 所以用户可以绕开客户端界面,直接发送转账协议,把其中的金额改成负数,这就导致用户A的金额不减反增。 (2)直接对WEB或者APP的服务端进行测试 一般来说,这种服务端的开发人员就是WEB/APP产品团队的开发人员,当然,测试人员跟WEB/APP的前端测试人员也是一个团队的。这种服务端就是为WEB/APP端提供一些后台的接口,比如说,用户个人信息、交易记录的读取和存储等,一般都是用HTTP接口的方式提供。这种后台的测试从流程上来说是跟随着WEB/APP产品的发布节奏来的,在后端开发完成接口以后,测试人员就直接用TestNG+HttpClient写接口测试用例、或者用Postman等工具手工测试。如果项目紧张,一般会先用Postman等工具先手工测试,等版本发布完以后,再用TestNG+HttpClient把自动化用例补上去,或者用Python的Nose框架。

Android 性能测试工具 ---Emmagee

匿名 (未验证) 提交于 2019-12-02 23:06:17
Emmagee是一款实用,方便的性能测试工具,适用于指定的Android App,它可以监控CPU,内存,网络流量,电池电流和状态(某些设备不受支持),新功能,如顶级活动和堆大小,此外,它还提供了一些很酷的功能,例如自定义收集数据的间隔,在浮动窗口中呈现实时进程状态等等。 主页: https : //github.com/NetEase/Emmagee Wiki: https : //github.com/NetEase/Emmagee/wiki 问题: https : //github.com/NetEase/Emmagee/issues 常见问题: https : //github.com/NetEase/Emmagee/wiki/FAQ 标签:Android,Java 我为什么要使用Emmagee? 与仅进行系统级监控的大多数其他性能测试工具不同,Emmagee提供监控任何单个应用程序的功能。您不应错过的其他优点: 开源 使用方便 特定于进程的监视,包括CPU,内存,网络流量,电池电流,启动时间和状态 浮动窗口,呈现实时进程状态 CSV格式报告,可以转换为您想要的任何其他格式 用户定义的收集间隔 完全支持Android 2.2及以上版本 如何使用Emmagee? 首先,你应该有Emmagee.apk,下载 这里 或建立apk文件youself 这里 ,则: 启动Emmagee

性能测试概要学习

匿名 (未验证) 提交于 2019-12-02 23:03:14
今天开始在博客园更新测试学习相关内容,记录学习,加油。 1. 性能测试的重要性 为了更好的满足用户的需求 2. 如果没有性能测试 1)想象一下人手工进行性能测试的场景 2)弊端: 投入大量资源 可重复性差 结果的整理和呈现形式差 3.性能测试与性能工具的选择 性能测试工具:一般是基于协议的 是为了施加负载 自动化:基于对象识别技术 是为了验证功能 4.性能测试工具选型 1)成本 学习成本 学习成本 2)通信协议 标准协议 自有协议 3) 生命力 去官网看是否持续更新 4)跨平台 5.常见的性能测试工具介绍 1)LoadRunner 收费 商用 2)Jmeter 开源 阿帕奇下 jave 3)Gating 阿帕奇下 有潜力 6.LoadRunner 概论 查找官方文档,readme 7.LoadRunner安装 8.LoadRunner基本组成 VUGen:开发脚本 Controller:运行控制 Analysis:分析 9.LoadRunner录制原理 将客户端和服务端当时说的话(协议)拦截到,理解后,转换成LoadRunner自身理解的形式展现出来。 10.Vugen界面和结构解析 11.运行时设置和Vuge目录结构解析 12.LoadRunner中的协议选择技巧 13.LoadRunner中的Controller解析 14.LoadRunner中Analysis解析

MySQL中间件性能测试 I

匿名 (未验证) 提交于 2019-12-02 22:06:11
本文根据黄炎在2018年7月7日【MySQL技术沙龙 ・ 成都站】现场演讲内容整理而成。 黄炎 爱可生研发总监,深入钻研分布式数据库相关技术,擅长业界相关MySQL中间件产品和开发,以及分布式中间件在企业内部的应用实践。 MySQL中间件性能测试 I 摘要: 我今天代表我的团队向大家来介绍一下MySQL中间件性能的测试,为大家带来一些不太一样的故事,包括我们在做性能测试的时候一些不太一样的视角。 分享大纲: 1.性能测试的常见的(错误)方法 * 3 2.性能测试的一些(我们用的)方法 * 2 3.分布式事务相关 * 1 我今天代表我的团队向大家来介绍一下MySQL中间件性能的测试,之所以讲选这个主题是因为我注意到大家都是高级的DBA,我们也有很多的高级的DBA,跟大家聊天的时候都会注意到,大家对于性能测试的第一印象: 性能 = sysbench 测试 = run 结果 = tps 数值要高大上 性能就是sysbench,然后测试就是跑一下,这就叫性能测试了,结果就是要TPS或者QPS,数值一定要高大上,这是大家对性能测试测试的第一印象也可能是唯一的印象。我们公司是属于乙方的技术服务提供商,我们对业界的很多产品进行过性能测试,所以今天想为大家带来一些不太一样的故事,以及我们在做性能测试的时候一些视角。 我今天大概会向大家介绍三件事情: 第一件事情 是我们观察到,大家在做性能测试的时候

性能测试工程师 简历

两盒软妹~` 提交于 2019-12-02 21:23:26
专业技能或IT技能,写在自我评价也可 1.技术(硬实力): (1)自动化 (2)性能 (3)数据库 (4)环境部署 (5)抓包 注意: (1)不要写的太过细节,而是写自己学过什么 (2)不要写一线的知识 2.软实力 (1)沟通能力 (2)诚实 (3)坚持 (4)吃苦耐劳 如: 1.熟悉测试流程及测试理论 √ 2.有Linux性能测试环境部署、监控,shell编写经验 3.熟悉常用数据库的使用,有Oracle及mysql使用经验 √ 4.有HTTP,webservice数据抓包经验,能够完成基本的接口测试 今天完成抓包 5.有APP及C/S架构项目性能测试的项目经验,熟悉Lordrunner、JMETER等性能测试工具 6.有Python、Java编程基础,熟悉自动化 7.有良好的沟通能力,擅长和开发人员、测试人员进行沟通。 √ 加上: 1.熟悉HTTP、TCP/IP协议 2.Java+selenium 自动化编程 3.持续集成Jenkins 项目经验: 1.项目基本信息:这个项目是什么? (1)项目名称 (2)项目时间 (3)项目介绍 (4)个人职责 (5)项目个人心得 2.项目职责:你在这个项目中负责什么? 3.项目心得:你从这个项目中收获了什么? 如: 2016/4 --至今 广州xx公司 技术部 测试经理 1.参与项目组性能需求评估,架构规划,容量规划及性能测试调优 2

性能测试基础知识——性能测试分类和测试指标

爷,独闯天下 提交于 2019-12-02 18:12:59
性能测试分类 性能测试 压力测试 压力测试是指当硬件资源如cpu、内存、磁盘空间等不充足时对软件稳定性的检查。 压力测试属于负面测试(Negative testing),使大量并发用户/进程加载软件以使系统硬件资源不能应付。这个测试也被称为是疲劳测试(Fatigue testing),通过超出其能力的测试来捕获应用程序的稳定性。 压力测试的主要思想是确定系统故障,关注系统如何优雅地恢复正常,这种质量被称为是可恢复性。 负载测试 负载测试是不断增加系统的负载,直到负载达到阈值——评估系统在预期工作负载下的性能的测试。 该方法可以找到系统的性能极限,可以为性能调优提供相关数据。 持久测试 持久测试(Endurance testing),也被称为是浸泡测试(Soak Testing),它也是一种非功能的测试。 持久测试是指在相当长的时间内使用预期的负载量对系统进行测试,以检查系统的各种行为,如内存泄露、系统错误、随机行为等。 这里的提到的相当长的时间是相对而言的,举例来说,如果一个系统设计为运行3个小时的时间,那可以使用6个小时的时间来进行持久测试;如果设计为5个小时的时间,不妨用10个小时的时间来进行持久测试。对于现在的许多网络类应用程序,通常情况下会持续运行好多天,那么进行持久测试时可以选择更长的时间段。 尖峰冲击测试 尖峰测试是在目标系统经受短时间内反复增加工作负载