【测试技术】关于推送服务的测试

您所在的位置:网站首页 消息推送的测试用例 【测试技术】关于推送服务的测试

【测试技术】关于推送服务的测试

2023-07-25 04:49| 来源: 网络整理| 查看: 265

最近工作接触到了关于推送服务的测试,故整理下此次的收获,后续会继续学习这块

测试前的学习阶段

Q1: 什么是websocket?

A: 出门左拐知乎 >> websocket知识普及贴

Q2: 推送服务怎么测?

A: 首先你要熟悉业务,设计测试用例,制定测试策略blahblah,这些不是本篇文章的重点,我略。

我先简单说明一下业务:

推送服务(push notification) “手机用过吗?你的各种【APP运行的时候】,动不动就会给你【推送】的【消息】” 让我们来分析一下上面这句话的几个关键字: APP(手机) -- > 客户端 client /要考虑到不同网络情况2G,3G,4G APP运行的时候 --> 向服务端发送心跳包ping pong(保持心跳),保持【长连接】 推送 --> 推送消息接口(我们用的是http或者是rpc协议) 消息 --> 一旦调用了推送接口,客户端会接收到推送消息

业务分析完了,来讲下最简单的测试case(真的是最简单的):

1、客户端A连上服务端,定时发送心跳包,保持长连接,客户端A不断线(online) 2、调用推送接口,指定向客户端A发送消息 3、客户端A收到推送消息

对于步骤1我刚开始使用了jmeter来操作,发现很难实现ping pong操作(client持续发ack消息给服务端),必须的是client连上服务端,服务端马上响应发一个特定的syn-ack消息过来,jmeter脚本内设计逻辑收到该消息继续使用该连接blahblah ... 各种鸡肋。也可能是我没有悟出jmeter websocket test的精髓(后面再研究下写扩展脚本的方式看看),各位可以参照下这篇文章:出门直走头朝下点开查看 >> WebSocket Testing With Apache JMeter

随着放弃jmeter来做客户端连接操作,剩下的一个办法就是自己写客户端连接工具(开发写了,在此我就不得不感叹心有余而力不足),这里我们开发使用的是GO写的(不难的,网上也有很多demo),后面自己也会具体研究下怎么自己写,马克留白记笔记 ^^

测试中的学习阶段

Q3: 推送服务怎么进行压测?

A: 确认性能需求,设计压测场景,执行测试,同步监控各种指标。

___ client online ___ msg send to client 步骤: 0.测试虚机(0/3) 1.client连接工具(1/3) 2.推送接口jmeter脚本(2/3) 3.执行1,执行2,监控数据 Tips: 0. client分布平均(100W连接,4台服务器,每台服务器有25W连接) * 单台服务器的性能压测就另说 1. client连上服务器后,可以观察一段时间,看ping pong是否正常,监控服务器指标 2. client主动断开连接,监控服务器指标 3. 服务端主动断开连接,查看client是否又进行重连,重连失败连不上的等情况 * 一般服务端部署有多台服务器,可随意reroll任一台 4. 并发推送消息,确保消息不会丢失blahblahblah ... 各位也看出来了,重点就是做好监控,监控,监控!!! 重要的事情,说三遍。

以上个人认为属于比较基本的业务压测,在进行压测之前还看过这样一篇以为会有用的文章:

七种WebSocket框架的性能比较

对客户端的机子要求较高,后面我们的压测没有能力做,用的都是虚机,不过文章内写的一些观点,还是值得参照的 ~

测试后的学习阶段

client连接脚本需要学习怎么写(未完成)

shell命令需要学习

jmeter beanshell学习

书到用时方恨少啊同志们

我举个小小的栗子:

测试机几十台机子,每台机子登上去连接5W连接,容易吗?

当然,如果你会shell,分分钟的事儿。Pexpect

先整理到这儿了,下周继续。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3