软件性能测试(连载19)

本文涉及的产品
云拨测,每月3000次拨测额度
简介: 软件性能测试(连载19)

2.6 APM工具简介

      [29] APMApplication Performance Management)是一种应用性能监控工具,通过汇聚业务系统的各个处理环节的实时数据,分析业务系统各个事务处理的交易路径和处理时间,实现对应用的全链路性能监测。目前主流的APM工具,基本都是参考了GoogleDapper(大规模分布式系统的跟踪系统)体系,通过跟踪业务请求的处理过程,完成对应用系统在前后端处理、服务端调用的性能消耗跟踪,提供可视化的界面来展示对跟踪数据的分析。


常见的APM包括。


1. Pinpoint

网址为:https://github.com/naver/pinpoint,是一款Java编写的大规模分布式系统的APM工具,由韩国人开发的开源的分布式跟踪组件,其特点是。


Ø分布式事务跟踪,跟踪跨分布式应用的消息。

Ø自动检测应用拓扑,帮助搞清楚应用的架构。

Ø水平扩展以便支持大规模服务器的集群。

Ø提供代码级别的可见性以便轻松定位失败点和瓶颈。

Ø使用字节码增强技术,添加新功能而无需修改代码。


2.SkyWalking

网址为:https://github.com/apache/incubator-skywalking2015年由个人吴晟,一名华为的开发者开源产品,2017年加入Apache孵化器。它针对分布式系统的应用性能监控系统,特别针对微服务、cloudnative和容器化(Docker, Kubernetes, Mesos)架构,其核心是个分布式追踪系统。SkyWalking使用Java探针字节码增加技术,实现对整个应用的监控。而对应用是零侵入的。


3.Zipkin

网址为:https://github.com/openzipkin/zipkin。是由Twitter团队开源的一个分布式的跟踪系统。它有助于收集数据需要解决潜在的问题。它管理数据的收集和查找。Zipkin结合spring-cloud-sleuth使用较为简单,集成也很方便。但是功能比较简单。


4.CAT

CATCentral Application Tracking)是美团和大众点评开发的一款APM工具。它是基于Java开发的实时应用监控平台,包括实时应用监控,业务监控。


3 性能调优


3.1分析方法

      软件的性能调优的方法分为自顶向下和自底向上两种方法。


1.自顶向下分析法

自顶向下分析法是从顶部开始发现问题,然后逐步向底部深入挖掘。比如通过发现系统响应时间变慢,吞吐率减少,定位系统化存在性能问题,然后逐步查看底层去查看是什么原因导致的。


2.自底向上分析法

自底向上分析法是通过发现CPU占有率高、内存消耗大、磁盘I/O变慢或网络延迟从而定位系统化存在性能问题,然后逐步查看顶层的表现来查找性能的问题


自顶向下和自底向上是分析性能问题的两种方法,这两种方法没有优劣,在性能分析的时候应该很好地结合使用这两种方法,从而快速地发现问题。


3.2前端优化

      现在前端技术层出不穷,前端性能测试也越来被受到重视。目前关于前端性能测试调优,Yahoo提出的“Web前端性能测试35条规则”是最得到大家认可的,读者可以访问

https://developer.yahoo.com/performance/rules.html去查看“Best Practices for Speeding Up Your Web Site”这篇文章。


3.3程序优化

      程序优化包括:表单压缩、局部压缩、逻辑清晰、谨慎继承、算法优化、批处理、延迟加载、防止内存泄露、减少对大对象的引用、防止死锁、索引、存储过程、内存分配、并行、异步、好的模式设计、合适的I/O等诸多方面。性能测试工程师要配合开发工程师做好程序优化工作。


3.4配置优化

      配置优化包括:JVM优化、连接池优化、线程池优化、缓存机制优化、CDN等几种方式。在这里简单介绍CDN


      以前中国的小朋友在线观看美国迪士尼的节目需要通过访问迪士尼总部的服务器来实现。虽然现在互联网速度非常快,但是在中国访问迪士尼在美国的官方服务器必定要通过中美海底光缆(CUCN),系统响应时间,可靠性等肯定是比较差的。在中国大陆建立了迪士尼的镜像服务器,每隔数小时把迪士尼在美国总部的节目同步到中国的镜像服务器中,中国的小朋友就可以通过镜像服务器观看迪士尼的节目了,虽然有数小时的延迟,比如在格林威治时间0:00美国主服务器上推出的节目,在中国可能要到格林威治时间6:00才可以看到,但是播放节目的速度,黄面的流畅性肯定要比在线观看在美国迪士尼总部服务器上的节目要好得多。请参看图3-39所示。

image.png

3-39  CDN


3.5数据库优化

      数据库优化包括:架构结构优化、共享SQL、查询器优化、SQL语句优化、单条/并行SQL、优化内存(SGAPGAAMM)以及优化I\O


顾翔老师与云测学院联合推出:软件测试分析与设计,请点击https://v.youku.com/v_show/id_XNDQ3MzkyNjk3Ng==.html?spm=a2hzp.8244740.0.0,收看。有不同观念欢迎与顾翔老师交流!


投票已过期

1.以下你用过哪些集中配置管理系统?(多选)

  • puppet
  • Chef
  • ansible
  • saltstack
  • Cfengine
  • Capistrano
  • Resque
  • Rundeck
  • Rundeck
  • 其他

2.以下你用哪些过虚拟机或容器?(多选)

  • VMware
  • Vagrant
  • Amazon EC2
  • AMI(亚马逊云机器镜像)
  • Vagrant
  • Docker
  • Rkt
  • 裸金属服务器
  • 其他

3.以下你用哪些操作系统自动化配置工具?(多选)

  • Solaris10 JumpStart
  • Kickstart
  • Debian-Preseed
  • 其他

4.以下你用哪些云平台?(多选)

  • Amazon Web Services
  • Google App Engine
  • Windows Azure
  • OpenShift
  • Cloud Foundry
  • AWS CloudFormation
  • Microsoft Azure Stack
  • OpenStack Heat
  • 百度云
  • 阿里云
  • 腾讯云
  • 其他

5.以下你用哪些CI/CD工具?(多选)

  • Jenkins
  • ThoughtWorks GoCD
  • Atlassian Bamboo
  • Microsoft Team Foundation Server
  • TeamCity
  • GitLab CI
  • Travis CI
  • SNAP CI
  • Pivotal的Concourse
  • Etsy的Morgue
  • 其他

6.以下你用哪些管理工具?(多选)

  • JIRA
  • LeanKit
  • Mingle
  • 禅道
  • 其他

7.以下你用哪些安全工具?(多选)

  • Vault
  • Keywhiz
  • credstash
  • Red October
  • Metasploit
  • OSSEC
  • Tripwire
  • Unhide
  • OWASP ZAP Zed Attack Proxy Project
  • Lynis
  • The Browser Exploitation Framework
  • OWASP Xenotix XSS Exploit Framework
  • OWASP Offensive Testing Framework
  • Brakeman
  • WPScan
  • nmap
  • Burp Suite
  • AWVS
  • AppScan
  • CSRFTester
  • SQL Map
  • Pangolin
  • DirBuster
  • 其他

8.以下你用哪些静态扫描工具?(多选)

  • Sonar
  • Brakeman
  • Codeclimate
  • CheckStyle
  • 其他
相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
8天前
|
XML 数据管理 测试技术
深入探索软件自动化测试框架的设计与实现
【4月更文挑战第26天】 随着软件开发周期不断缩短,传统的手动测试方法已难以满足快速迭代的需求。本文聚焦于自动化测试框架的构建与优化,旨在提供一种高效、可维护且可扩展的软件测试解决方案。文章从自动化测试的必要性出发,详细阐述了自动化测试框架设计的核心要素,包括模块化设计、数据驱动测试以及关键词驱动测试等概念。同时,结合实例分析了如何利用流行的测试工具进行框架搭建,并提出了针对常见问题的创新解决方法。最后,通过案例研究展示了该框架在实际项目中的应用效果和潜在改进空间。
|
14天前
|
设计模式 测试技术 持续交付
深入白盒测试:提升软件质量与性能的关键策略
【4月更文挑战第20天】 在软件开发的复杂世界中,确保产品的质量和性能始终是至关重要的任务。白盒测试,作为软件测试领域的重要分支,提供了对程序内部结构和逻辑的深入分析手段。本文将探讨如何通过有效的白盒测试策略来优化软件性能,减少缺陷,并最终提高用户满意度。通过剖析代码检查、单元测试、集成测试等白盒测试技术,我们将了解这些方法如何揭示潜在的问题点,并为改进提供方向。
|
23天前
|
算法 安全 测试技术
深入探索白盒测试:提升软件质量与效率的关键策略
【4月更文挑战第11天】 在软件开发的生命周期中,确保代码质量和功能的正确性是至关重要的。白盒测试,作为一项关键的验证手段,允许测试者通过检查内部结构、设计和编码逻辑来识别软件中的缺陷和漏洞。本文将探讨白盒测试的核心概念、方法及其在提升软件测试效率和质量上的重要性。我们将分析静态分析和动态测试的策略,并讨论如何通过白盒测试优化软件开发过程。
|
3天前
|
测试技术 持续交付 数据安全/隐私保护
深入理解软件自动化测试中的数据驱动策略
【5月更文挑战第1天】 在软件测试领域,自动化测试已经成为提高测试效率和质量的重要手段。其中,数据驱动测试(DDT)作为一种高效实施自动化测试的策略,允许测试用例与测试数据分离,增强了测试脚本的可维护性和灵活性。本文将详细探讨数据驱动测试的核心概念、实现方式以及在实际中的应用案例,帮助读者更深入地理解如何利用数据驱动策略优化自动化测试流程。
|
3天前
|
Java 测试技术 开发者
深入理解与应用单元测试:软件质量的守护者
【4月更文挑战第30天】 在现代软件开发过程中,单元测试作为保障代码健康的重要环节,其地位日益凸显。本文将探讨单元测试的核心概念、实施单元测试的重要性以及如何高效地设计并执行单元测试。通过实例分析,我们将揭示单元测试在确保软件产品质量和加速开发周期中的关键作用。
|
4天前
|
存储 敏捷开发 监控
深入理解软件自动化测试中的数据驱动策略
【4月更文挑战第30天】 在追求高效率和可靠性的现代软件开发过程中,自动化测试已经成为确保产品质量的关键手段。数据驱动测试(DDT)作为一种高效的自动化测试策略,它通过外部化测试数据和脚本,增强了测试用例的可维护性和可扩展性。本文将深入探讨数据驱动测试的概念、实施方法以及在实际项目中的最佳实践,旨在帮助读者构建更加健壮和灵活的自动化测试框架。
|
6天前
|
敏捷开发 监控 Java
深入理解与应用软件自动化测试框架
【4月更文挑战第27天】 在软件开发的生命周期中,确保代码质量和功能的正确性是至关重要的。随着敏捷开发方法的普及和产品迭代速度的加快,传统的手动测试方法已经难以满足快速交付的需求。本文将重点讨论软件自动化测试框架的构建与实施,旨在为读者提供一种提高测试效率、确保测试质量的有效途径。我们将介绍自动化测试的基本概念、关键优势以及面临的挑战,并通过具体的案例分析,展示如何根据项目特点选择合适的测试框架,以及如何设计、执行和维护自动化测试脚本。
|
7天前
|
XML 敏捷开发 存储
深入理解软件自动化测试中的数据驱动策略
【4月更文挑战第27天】 在现代软件开发过程中,自动化测试是确保产品质量和加快市场投放速度的关键步骤。本文专注于探讨数据驱动测试(DDT)策略,它是一种将测试脚本与测试数据分离的方法,旨在提高测试覆盖率和效率。通过分析数据驱动测试的工作原理、实施方法以及面临的挑战,本文为读者提供一个清晰的视角来理解和应用这一策略,以优化其自动化测试流程。
|
11天前
|
算法 测试技术 持续交付
深入白盒测试:提升软件质量与效率的关键策略
【4月更文挑战第23天】 在软件开发的复杂多变的环境中,确保产品的质量和可靠性是至关重要的。白盒测试作为一种重要的软件测试方法,允许测试者通过检查内部结构、设计和编码来验证软件的功能性和正确性。本文将探讨白盒测试的关键概念、技术及其在提升软件测试效率和质量中的应用。我们将重点讨论如何借助白盒测试发现潜在缺陷、优化测试用例设计,并通过具体案例分析展示其在实际中的应用效果。
|
11天前
|
测试技术
深入白盒测试:提升软件结构透视能力
【4月更文挑战第23天】在软件测试的广阔天地中,白盒测试以其独特的内在逻辑和代码透视能力而显得尤为重要。它不仅仅是一个测试方法,更是一种确保软件质量和可靠性的重要手段。本文将深入探讨白盒测试的概念、方法和最佳实践,旨在为软件开发和测试人员提供一种系统的视角,以帮助他们更好地理解并应用白盒测试技术,进而提高软件产品的质量。
6 0