玩转小程序压测

简介:小程序是移动互联网时代非常重要的流量入口。为了避免因系统性能瓶颈导致用户在使用过程中出现白屏、异常报错等问题影响用户体验,小程序在新功能上线前需要做好压力测试,评估出系统的承载能力,并以压测结果配置限流。让系统面对流量突增,也能稳如泰山。

作者:拂衣

小程序也是需要压测的

小程序是移动互联网时代非常重要的流量入口。为了避免因系统性能瓶颈导致用户在使用过程中出现白屏、异常报错等问题影响用户体验,小程序在新功能上线前需要做好压力测试,评估出系统的承载能力,并以压测结果配置限流。让系统面对流量突增,也能稳如泰山。

常见的小程序中需要做压测的 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

6. 单击+添加压测 API,填写第二个 API,即小程序活动页面接口,请求方式选择为 POST。小程序活动页面接口即小程序的 URL。

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

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

9. 单击施压配置页签,根据实际需要,填写压测并发数和时长等信息,示例如下图所示。

说明

  • 若需要获取已经登录的微信用户信息供多个串联链路使用,如 OpenID 或 Token 等,请参见使用 Cookie 模拟登录场景[2]
  • 若获取的信息侧有限流信息,如同一用户的频繁登录登出限制、接口调用限制等,可准备一个串联链路低并发、低 RPS 的登录信息。
  • 施压配置的更多信息,请参见如何进行施压配置[3]

10. 单击创建 PTS 场景页面左下方的保存去压测,即可发起压测。

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

假设需要压测微信平台上小程序的活动页面。那么,您可以在压测前提前批量获取到平台 Token,或者在本地准备些数据(如果业务允许),放在数据文件中,压测时作为全局参数使用。

注意 一般平台 Token 都存在有效期限制,需要定期刷新才能使用。所以采用该方法请注意确认 Token 有效期,超过该期限后,压测就无法正常进行。

具体操作步骤如下:

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

说明

您可以通过线上环境批量获取平台 Token,或者如果业务允许的情况下可在本地构造 Token 数据。

2. 登录 PTS 控制台[1],在左侧导航栏单击创建场景 > 创建 PTS 场景

3. 在创建 PTS 场景页面,填写场景名,例如“myAPP”。

4. 在场景配置页签下,填写小程序活动页面接口。

5. 单击创建 PTS 场景页面下方的数据源管理,单击+上传文件,上传本地准备的 .csv 文件。上传完毕后,填写参数名,并单击确定

6. 单击+添加压测 API 右侧的下拉箭头,选择添加数据配置

7. 单击数据配置一栏右侧的箭头图标展开更多详细设置,在文件参数设置页签中选择参数名。单击复制图标,复制该参数。

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

9. 单击施压配置页签,根据实际需要,填写压测并发数和时长等信息,示例如下图所示。

10. 单击创建 PTS 场景页面左下方的保存去压测,即可发起压测。

使用 PTS 做小程序压测的优势

  • PTS 完全自研的压测引擎,支持吞吐量模式,准确模拟流量漏斗模型
  • 支持全国地域发起压测流量,模拟真实用户分布
  • 提供问题诊断工具,展示方法堆栈粒度的报错信息,精准定位性能问题
  • 支持客户端代理录制,大大降低构建压测脚本的成本

原文链接

本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/510948.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

好的每日站会,应该这么开 | 敏捷开发落地指南

简介:高效落地敏捷开发,先从这3个关键活动着手。在敏捷迭代中,虽然迭代周期比较短,但依然需要对迭代过程进行有效跟进。如果在输入、过程、输出环节,没有要求,每日站会(迭代跟进)将会…

EasyNLP开源|中文NLP+大模型落地,EasyNLP is all you need

简介:EasyNLP背后的技术框架如何设计?未来有哪些规划?今天一起来深入了解。 作者 | 临在、岑鸣、熊兮 来源 | 阿里开发者公众号 一 导读 随着BERT、Megatron、GPT-3等预训练模型在NLP领域取得瞩目的成果,越来越多团队投身到超大…

内容社区行业搜索最佳实践

简介:社区内容通常包括UGC和PGC。由于关键词和内容多样性丰富、用词规范程度参差不齐,搜索引擎需要对关键词和内容进行智能语义分析,识别出用户真正的查询意图,找到最全面最相关的结果满足用户需求。本文将详细介绍如何通过“开放…

手把手,带你用数据做好迭代复盘改进 | 敏捷开发落地指南

简介:高效落地敏捷开发,先从这3个关键活动着手。带你用数据做好迭代复盘改进 ,数据说话,借助云效项目协作Projex 高效开展迭代复盘高效落地敏捷开发。 摘要:高效落地敏捷开发,先从这3个关键活动着手&#…

记一次网络相关的技术问题答疑

大家好,我是飞哥!前段时间飞哥参加了一期 OSChina 官方举办的「高手问答」栏目。在这个栏目里,我和 OSChina 的网友们以《深入理解 Linux 网络》为主题,对大家日常所关心的一些问题展开了一些技术探讨。今天我把这个活动中探讨的内…

Hexo博客框架—轻量、一令部署

简介:Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。Hexo支持Github Flavored Markdown的所有功能, 甚至可以整合Octopress的大多数…

被你质疑价值的混沌工程,阿里巴巴已落地实践了9年

简介:无可讳言,对于混沌工程的价值,目前在业内还没有一个明确的度量标准,但是可以通过简单的例子来有效佐证。据中亭介绍,一方面可以先选定一个场景,从结果上看,混沌工程可以保证场景不劣化&…

同为博客,不同风格 ——Hexo另类搭建

简介:通过阿里云云开发平台快速由Hexo创建赛博朋克风格的博客。 一 、通过云开发平台快速创建初始化应用 1.创建相关应用模版请参考链接:Hexo博客框架—轻量、一令部署 2.完成创建后就可以在github中查看到新增的Hexo仓库 二 、 本地编写《赛博朋克风…

即学即会 Serverless | 初识 Serverless

简介:Serverless 架构被越来越多的业务所采纳,成为其技术选型,大多数开发者已经跨越对 Serverless 概念了解,切实向落地实践出发。本文带大家一探究竟,为什么说 Serverless 可以帮助开发者聚焦核心业务价值&#xff0c…

宜搭小技巧|巧用审批按钮,流程随心流转

简介:一键启用流程退回,再也不用担心“一错回到提交前”! 今天,宜小搭提交了产品采购申请单,却因某项产品选错分类被领导拒绝,宜小搭只能重新填写再提交,这样做既麻烦也影响工作效率。 流程已…

阿里云将投入70亿元建国际生态、增设6大海外服务中心

9月22日消息,阿里云在泰国举办的国际云峰会上宣布将继续加快海外市场布局,未来三年投入70亿元建设国际本地化生态,并在海外增设6个服务中心,分别位于波尔图、墨西哥城、吉隆坡、迪拜等地。近年来,阿里云在海外市场获得…

开源|优酷动态模板研发体系为分发提效30%

简介:动态模板技术方案将客户端研发链路实现了串联,通过完备的工具化支撑体系,让开发者可以高效完成组件由原始设计稿到可运行代码的最短通路,本文将对研发体系中涉及到的核心模块就行介绍,希望对技术社区及广大开发者…

比心云平台基于阿里云容器服务 ACK 的弹性架构实践

简介:本文主要探讨比心云平台如何利用阿里云容器服务 ACK,来构建应用弹性架构,进一步优化计算成本。 作者:韩韬|比心技术 前言 应用容器化改造后,不可避免地会面临这样一个问题:Kubernetes 集…

程序员莫名收到谷歌转账170万元,直言:一个月没敢花

整理 | 朱珂欣 出品 | CSDN程序人生(ID:coder_life)近日,Google 公司发生一起乌龙事件, 意外地给一位博客和安全工程师转账近25万美元(约合人民币174万元),当事人表示等待将近一个月…

利器解读:Linux 内核调测中最最让开发者头疼的 bug 有解了|龙蜥技术

简介:通过在Anolis 5.10 内核中增强 kfence 的功能,实现了一个线上的、精准的、可定制的内存调试解决方案。 编者按:一直持续存在内核内存调测领域两大行业难题: "内存被改" 和 "内存泄漏"何解?本文整理自龙…

无需修改代码,用 fcapp.run 运行你的 REST 应用

简介:解锁客户不修改代码部署存量REST、网页应用场景,解决客户函数调用返回404问题,支持标准的网关产品与开源组件集成函数计算。 作者 | 阿里云 Serverless 技术研发 落语 背景 阿里云函数计算产品在较早的时候支持了HTTP触发器能力&…

在 Linux 中锁定和解锁用户的 3 种方法

在多用户操作的服务器中锁定(禁用)用户可能有多种原因,比如某个用户的登录密码被泄露,或者某个用户离职,但是该用户下还有部分文档未完成转移,而因为归档的目的暂时不删除该用户,而只是锁定等等…

中小企业掀起“减碳潮”,“上云”提高产品绿色竞争力

中小企业节能减碳需求正进入爆发期。4月22日世界地球日,近2000家中小企业已接入阿里云碳排放优化核算平台“能耗宝”,通过光伏装机和算法优化全年节省4.3亿度煤电,相当于减少44万吨碳排放。其中,浙江、广东及江苏的中小企业走在减…

函数计算 HTTP 触发器支持异步,解放双手搭建 Web 服务

简介:函数计算 HTTP 触发器支持异步调用,为用户搭建 WEB 服务使用函数计算作为全托管平台打通了最后一公里,以后 HTTP 触发器的使用者,也可以感受到异步调用”开箱即用“的便捷体验。 作者| 阿里云Serverless技术专家 澈尔 当前…

如何做好“防御性编码”?

简介:类似于“防御性驾驶”对驾驶安全的重要性,防御性编码目的概括起来就一条:将代码质量问题消灭于萌芽。要做到“防御性编码”,就要求我们充分认识到代码质量的严肃性,也就是“一旦你觉得这个地方可能出问题&#xf…