微信小程序压测怎么做?快来试试 Donut X 小程序云测的解决方案吧

需求场景

很多小程序都会进行一些运营活动,这时候会有很多用户同时进来访问。当用户量比较大时,业务方可能会担心压力过大导致小程序功能异常。

这时开发同学/测试同学希望能够对小程序进行一次压力测试,比如可以模拟1000个用户同时打开小程序场景。

自然而然的,一个常见想法是直接用1000个手机,同时打开小程序,模拟用户并发情况。但是用纯UI自动化方式去压测,会遇到以下几个问题:

  1. 由于每台手机的性能不一,控制多台手机都是在同一个时刻去打开小程序基本无法做到
  2. 用1000台手机去做端到端的压测成本高。而且由于手机数量是有限的,压力瓶颈有明显上限

解决方案

微信推出的 Donut安全网关 支持小程序压测能力,可以生成微信code,实现真实用户请求业务接口以及微信开放接口的全链路压测

Donut工具主要关注服务器端的请求是否正常响应,无法感知小程序在压力情况的UI表现和性能情况

这里可以将 小程序云测 的自动化/性能测试能力和Donut网关结合起来。首先利用Donut网关对后台服务器进行发压,例如并发用户量调整为1000。压力上来后,在云测正常执行对应的测试任务。这样相当于用几台手机模拟测试了“1000台手机同时打开小程序”的场景。

通过结合云测的自动化测试和性能测试能力(比如收集到的截图,录屏,体验评分,启动性能 ,网络请求,是否存在黑白屏JSError等异常情况),用户可以全面观察小程序在压力情况下的实际UI表现

实践案例

需求:小程序A希望对首页内容进行压测,观察100个用户同时打开首页的表现是否有异常。可以按照以下步骤进行:

1. Donut发压

用户在Donut建立网关后,调试后台压测请求链路,例如小程序A希望对首页进行压测,请求的链路为:

  1. 首先获取用户code
  2. 用微信code访问服务器后台,识别用户
  3. 识别用户身份后,生成首页内容数据

调试成功后,可以按照实际需求去预约压测任务,如配置并发用户数为100,压测时长为30分钟

2. 云测跑测质检任务

压测任务启动后,建议立即启动云测任务(由于云测需要对真机进行初始化操作,一般需要2-5分钟后才会真正拉起小程序)。

执行云测的任务类型推荐使用小程序质检能力,因为质检会同时发起启动性能测试和自动化测试任务:

  • 启动性能测试:观察压力情况下,小程序启动耗时是否会变慢
  • 自动化测试:自动化任务可以根据业务实际需求,使用Monkey、录制回放、Minium的一种。主要目的是观察压力情况下,小程序是否会出现功能异常或性能问题(如Monkey测试可以检测JSError,黑白屏等异常)

这里小程序A使用Monkey作为自动化测试方案。一般情况下,首页内容是正常加载的,但是当服务器压力较大,网络返回较慢时,小程序A出现了JSError问题

后续规划

目前用户需要手动在Donut和云测端分别操作去启动任务。

后续云测和Donut结合起来,可以让用户在Donut中,执行压测任务时可以选择同时启动云测任务,带来更好地压测体验。

关于压测有任何问题,欢迎在帮助页面,加入官方企微群,和云测小助手一起探讨

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是用R语言编写的 `donut_plot` 函数,可以绘制一个甜甜圈图。 ```r donut_plot <- function(x, col){ # 计算各部分所占比例 total <- sum(x) x_prop <- x/total # 绘制图形 pie(x_prop, col = col, init.angle = 90, labels = NA, main = "") pie(x_prop, col = col, init.angle = 90, border = "white", labels = round(x_prop, 2), main = "") legend("topright", legend = paste0(round(x_prop*100, 2), "%"), fill = col) } ``` 其中,`x` 是一个向量,包含各部分的数值,`col` 是一个向量,包含各部分的颜色。 例如,假设我们有以下数据: ```r data <- c(10, 20, 30, 40) colors <- c("red", "orange", "yellow", "green") ``` 我们可以调用 `donut_plot` 函数来绘制甜甜圈图: ```r donut_plot(data, colors) ``` 这将绘制出一个甜甜圈图,其中红色部分占 10%,橙色部分占 20%,黄色部分占 30%,绿色部分占 40%。 ### 回答2: 甜甜圈图(Donut chart)是一种环形图形的表达方式,可以用来展示各个类别在整体中的比例关系。我们可以使用R语言编写一个函数`donut_plot`来绘制甜甜圈图。 ```R donut_plot <- function(x, col) { # 计算每个类别的比例 proportions <- prop.table(table(x)) # 绘制甜甜圈图 pie(proportions, col = col, main = "Donut Chart", radius = 0.8) legend("bottom", labels = names(proportions), fill = col, horiz = TRUE) } ``` 上述函数`donut_plot`接受两个参数:`x`表示类别向量,`col`表示颜色向量。函数首先使用`table`函数计算每个类别的频数,然后使用`prop.table`函数计算每个类别的比例。最后,函数使用`pie`函数绘制甜甜圈图,传入比例和颜色参数,`main`参数用于设置主标题,`radius`参数用于控制甜甜圈的大小。最后,使用`legend`函数在图例位置底部添加标签和颜色。 通过调用`donut_plot`函数,我们可以自定义数据和颜色来绘制甜甜圈图,例如: ```R x <- c("A", "A", "B", "C", "C", "C") col <- c("red", "green", "blue") donut_plot(x, col) ``` 这将绘制一个甜甜圈图,展示了类别"A"、"B"和"C"在整体中的比例关系,并使用红色、绿色和蓝色作为类别的颜色。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值