热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于阿里云:玩转小程序压测

小程序是挪动互联网时代十分重要的流量入口。为了防止因零碎性能瓶颈导致用户在应用过程中呈现白屏、异样报错等问题影响用户体验,小程序在新性能上线前须要

作者:拂衣

小程序也是须要压测的

小程序是挪动互联网时代十分重要的流量入口。为了防止因零碎性能瓶颈导致用户在应用过程中呈现白屏、异样报错等问题影响用户体验,小程序在新性能上线前须要做好压力测试,评估出零碎的承载能力,并以压测后果配置限流。让零碎面对流量突增,也能稳如泰山。

常见的小程序中须要做压测的 3 种场景

  • 新开发的零碎或性能上线前须要理解其性能水位状况。
  • 对系统进行技术调优、零碎扩容前后通过压测进行性能比对。
  • 加入小程序平台流动前对系统进行性能评估。

小程序的压测计划如何设计

依据压测场景不同,压测计划可简略可分为:单接口压测、混合压测、性能调优压测、长稳压测等。请依据须要抉择不同的计划。

  • 单接口压测:针对外围业务场景波及的接口进行独自压测,剖析单接口链路的瓶颈。
  • 混合压测:针对业务场景进行混合压测,评估零碎综合并发解决能力。
  • 性能调优压测:测试利用零碎参数、JVM 参数、线程池参数等对系统性能的影响,并得出最佳实际的参数设置。
  • 长稳压测:长期维持一个绝对较高的并发量进行压力测试,察看零碎反馈状况。通过 24H * N 天的长稳压测,保证系统的稳定性,避免内存溢出、迟缓泄露,线程池、资源获取时的偶尔竞争造成死锁、排队等景象;长稳压测的工夫长度可依据具体情况适当缩小,比方依照 JVM GC、Full GC 产生次数决定稳定性压测工夫等。 

应用 PTS 对小程序进行压测的最佳实际

不同于自建网站压测,针对小程序压测时,通常须要取得小程序所在的平台(如支付宝、微信)的 Token 信息,并在有效期内应用能力失常压测小程序业务接口。举荐您通过以下两种形式获取平台受权的 Token:

  • (举荐)编写接口主动获取 Token,并在有效期内刷新该 Token。压测中,您通过 PTS 压测该接口,能够主动取得 Token。
  • 压测前提前记录平台 Token,并以参数模式传入小程序业务接口中。然而请留神压测时长不能超过 Token 的有效期,防止因 Token 生效导致无奈进行业务压测。

形式一:编写接口获取 Token

假如须要压测微信平台上小程序的流动页面。您能够编写接口去获取微信的 Token 信息,将该接口编排进压测场景中,并提取出参,传递给前面理论的业务接口。具体操作步骤如下:

  1. 在本地编写接口,以便可能在压测过程中继续地获取微信的 Token 信息。
  2. 登录 PTS 控制台 [1] ,在左侧导航栏抉择创立场景 > 创立 PTS 场景
  3. 填写场景名,例如“myAPP”。
  4. 场景配置页签下,单击压测 API 名称一栏右侧的箭头开展更多具体设置,填写第一个压测 API,即自定义的获取微信 Token 的接口。
  5. 抉择出参定义页签,配置示例如下:

  • 出参名:access_token
  • 起源:Body:JSON
  • 解析表达式:access_token
  1. 单击 +增加压测 API,填写第二个 API,即小程序流动页面接口,申请形式抉择为 POST。小程序流动页面接口即小程序的 URL。

  1. 单击创立 PTS 场景页面下方的参数列表,在弹出的对话框中单击出参名的复制图标,复制该出参参数。

  1. 假如须要在 API 的 Body 中传入已复制的出参 access_token,单击 API 的 Body 定义页签。在 Key 中填写自定义的名称(例如 input_token),在 Value 中粘贴已复制的出参参数。

  1. 单击施压配置页签,依据理论须要,填写压测并发数和时长等信息,示例如下图所示。

阐明

  • 若须要获取曾经登录的微信用户信息供多个串联链路应用,如 OpenID 或 Token 等,请参见应用 COOKIE 模仿登录场景 [2]
  • 若获取的信息侧无限流信息,如同一用户的频繁登录登出限度、接口调用限度等,可筹备一个串联链路低并发、低 RPS 的登录信息。
  • 施压配置的更多信息,请参见如何进行施压配置 [3]
  1. 单击创立 PTS 场景页面左下方的保留去压测,即可发动压测。

形式二:手动记录 Token 并写入业务接口

假如须要压测微信平台上小程序的流动页面。那么,您能够在压测前提前批量获取到平台 Token,或者在本地筹备些数据(如果业务容许),放在数据文件中,压测时作为全局参数应用。

留神 个别平台 Token 都存在有效期限度,须要定期刷新能力应用。所以采纳该办法请留神确认 Token 有效期,超过该期限后,压测就无奈失常进行。

具体操作步骤如下:

1.新建一个 .csv 文件(用 Excel 编辑之后另存为 .csv 格局,或者用 Apache 的 commons-csv 来生成),将 Token 信息写在一列中,示例如下:

阐明您能够通过线上环境批量获取平台 Token,或者如果业务容许的状况下可在本地结构 Token 数据。

  1. 登录 PTS 控制台 [1] ,在左侧导航栏单击创立场景 > 创立 PTS 场景
  2. 创立 PTS 场景页面,填写场景名,例如“myAPP”。
  3. 场景配置页签下,填写小程序流动页面接口。
  4. 单击创立 PTS 场景页面下方的数据源治理,单击 +上传文件,上传本地筹备的 .csv 文件。上传完毕后,填写参数名,并单击确定

  1. 单击 +增加压测 API 右侧的下拉箭头,抉择增加数据配置
  2. 单击数据配置一栏右侧的箭头图标开展更多具体设置,在文件参数设置页签中抉择参数名。单击复制图标,复制该参数。

  1. 假如须要在 API 的 Body 中传入已复制参数,单击流动页面 API 的 Body 定义页签。在 Key 中填写自定义的名称(例如 token),在 Value 中粘贴已复制的出参参数。

  1. 单击施压配置页签,依据理论须要,填写压测并发数和时长等信息,示例如下图所示。

  1. 单击创立 PTS 场景页面左下方的保留去压测,即可发动压测。

应用 PTS 做小程序压测的劣势

  • PTS 齐全自研的压测引擎,反对吞吐量模式,精确模仿流量漏斗模型
  • 反对全国地区发动压测流量,模仿实在用户散布
  • 提供问题诊断工具,展现办法堆栈粒度的报错信息,精准定位性能问题
  • 反对客户端代理录制,大大降低构建压测脚本的老本

同时,PTS 全新售卖形式来袭,根底版价格直降 50%!百万并发价格只需 6200!更有新用户 0.99 体验版、VPC 压测专属版,欢送大家选购!

相干链接

[1]PTS 控制台

​​https://pts.console.aliyun.com/?accounttraceid=e03f85e8c48a48239986f1adbd831f5etyot​​

[2]应用 COOKIE 模仿登录场景

​​https://help.aliyun.com/document_detail/71027.htm#multiTask1285​​

[3]如何进行施压配置

​​https://help.aliyun.com/document_detail/70480.htm#concept-70480​​

[4]支付宝小程序压力测试计划

​​https://opendocs.alipay.com/support/01rb1x​​

[5]如何在一分钟内发动压测

​​https://help.aliyun.com/document_detail/70290.html​​

点击​​此处​​,理解性能测试 PTS 更多资讯!


推荐阅读
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 渗透测试基础bypass绕过阻挡我们的WAF(下)
    渗透测试基础-bypass ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 本文介绍了Windows Vista操作系统中的用户账户保护功能,该功能是为了增强系统的安全性而设计的。通过对Vista测试版的体验,可以看到系统在安全性方面的进步。该功能的引入,为用户的账户安全提供了更好的保障。 ... [详细]
  • .NetCoreWebApi生成Swagger接口文档的使用方法
    本文介绍了使用.NetCoreWebApi生成Swagger接口文档的方法,并详细说明了Swagger的定义和功能。通过使用Swagger,可以实现接口和服务的可视化,方便测试人员进行接口测试。同时,还提供了Github链接和具体的步骤,包括创建WebApi工程、引入swagger的包、配置XML文档文件和跨域处理。通过本文,读者可以了解到如何使用Swagger生成接口文档,并加深对Swagger的理解。 ... [详细]
  • 安装oracle软件1创建用户组、用户和目录bjdb节点下:[rootnode1]#groupadd-g200oinstall[rootnode1]#groupad ... [详细]
  • 概述H.323是由ITU制定的通信控制协议,用于在分组交换网中提供多媒体业务。呼叫控制是其中的重要组成部分,它可用来建立点到点的媒体会话和多点间媒体会议 ... [详细]
  • PHP输出缓冲控制Output Control系列函数详解【PHP】
    后端开发|php教程PHP,输出缓冲,Output,Control后端开发-php教程概述全景网页源码,vscode如何打开c,ubuntu强制解锁,sts启动tomcat慢,sq ... [详细]
  • OWASP(安全防护、漏洞验证工具)开放式Web应用程序安全项目(OWASP,OpenWebApplicationSecurityProject)是一个组织 ... [详细]
  • 可空类型可空类型主要用于参数类型声明和函数返回值声明。主要的两种形式如下: ... [详细]
  • Java大文件HTTP断点续传到服务器该怎么做?
    最近由于笔者所在的研发集团产品需要,需要支持高性能的大文件http上传,并且要求支持http断点续传。这里在简要归纳一下,方便记忆 ... [详细]
author-avatar
Annie千寻_535
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有