WeTest 导读
在小程序持续大量爆发的形势下,现在已经成为了各平台竞争的战略布局重点。至今年2月,月活超500万的微信小程序已经达到237个,其中个人开发占比高达2成。因小程序的开发门槛低、传播快、收益高,越来越多的开发者投入了小程序这一领域,由于整体开发水平层次不齐,会碰到越来越多的小程序质量问题。特别是面对电商、零售、旅游、直播等容易有高并发量的行业,会出现“服务器崩溃”、“访问响应缓慢”、“页面操作卡死”、“支付提交失败”等性能问题。那么,应该如何做小程序服务器压测呢?
接下来,我们将以电商行业为例,为您介绍如何使用WeTest的压测大师来做微信小程序的压测。
首先新建一个测试用例,添加客户端请求,然后根据自身业务需求设计测试模型,最后对微信小程序发起压测。
一、场景的需求分析
某电商类微信小程序需要压测商品详情和加入购物车页面,根据业务逻辑,首先进入商品详情页,再将商品加入购物车。
1、进入商品详情页
1)通过商品id,可以打开不同商品详情页
2、加入购物车
1)选择不同商品详情页,将不同商品加入购物车中
测试模型如下:
二、场景配置的操作步骤
接下来为了实现前面的测试需求,我们来介绍下具体步骤:
1、登录WeTest平台(wetest.qq.com),在导航栏选择产品>性能测试>服务器性能>进入项目>创建项目
(注:创建团队项目可与团队成员共同管理和完成项目)
2、在项目首页点击创建测试按钮,选择URL测试来创建用例,示例如下:
3、 在客户端请求栏,填写URL地址、选择请求方法。示例如下:
压测URL地址:https://top.domain.com/goods/getProductDetail
请求方法:POST
说明:该示例中,使用的域名“top.domain.com”,为示例地址,您可以根据真实业务场景填写压测URL。
4、在客户端请求栏,填写Header、Body请求参数。
1)选择Header页签,填写商品详情接口请求header信息。
2)选择Body页签,填写商品详情接口请求body信息,Header中Content-Typ字段为application/json,故Body是 JSON格式,body上传方法选择raw。
5、单击 添加客户端请求 ,填写第二个客户端请求信息。
6、为判断“商品加入购物车”是否成功,可设置检查点,选择检查点页签,填写检点信息。
1)变量名:填写自定义的变量名称;
2)来源:根据变量的返回路径选择Response Header或Response Body,这里我们选择Response Body;
3)提取方式:可根据需要自主选择变量的提取方式,这里我们选择 JSON;
4)Header名称:当来源为Response Header时需要填写相应的header名称;
5)检查规则:根据选择的提取方式填写对应的规则;
6)预期值:填写预期服务器返回值;
示例如下:
商品加入购物车接口成功的返回信息为:
{"code":"100","message":"","result":{#加入购物车的对应商品信息},"ver":"1"},来自Response Body,这里我们自定义变量名为code,提取方式选择 JSON,检查规则为["code"],预期值为100设置检查点。
如图所示:
三、场景调试操作步骤
1、 定义场景名
1)自定义一个场景的名称,平台默认场景名为:默认场景1/2/3……
2、上下文/单场景模式选择
1)单场景是单独执行这一条URL,设置多个单场景时,多条URL将会并行执行;
2)上下文是构建链路性场景,从A到B顺序执行,B的某个值从A的返回内容中提取等。
3、设置压力百分比
1)设置该场景的压力百分比,当测试模型中有多个场景时,可根据自身业务比例进行分配压力百分比
4、点击“调试”按钮进行调试。一般调试时间在5秒至20秒。
1)调试结束后,可查看客户端请求的调试详情。
四、压力设置步骤
场景调试完成后,需要设置并发人数和场景配置等。
1、填写并发设置,如图所示:
1)起始人数:初始并发10;
2)每阶段增加人数:每阶段增加并发为0;
3)每阶段持续时间:代表压测时长为1分钟;
4)最大人数:最大人数需要大于或等于初始并发;
5)发包间隔时间:每次请求收到回包后等待0s,再次发送请求
6)超出时间:事务响应时间超过10000ms,记为超时请求
7)发包模式:客户端建链后不切换端口,始终在长链接上不断发包
2、报告标准阈值设置
可以根据项目需求设置阈值,如成功率、响应时间和TPS,最终压测数据与阈值进行比对,若满足条件即测试通过。
五、启动压测
单击立即执行,即可发起压测(腾讯云用户需在VUM消费确认栏点击确认)
WeTest平台针对于服务器性能测试中常出现的技术门槛、配置冗杂、成本高昂等开发者亟待解决的问题,推出“压测大师”服务,包含了“服务器自助压测服务”与“深度性能测试服务”两大功能模块,通过专业级别测试与健全修正方案,协助开发者逐一击破切实难关。
点击传送门获取更多压测信息: