微信、QQ发消息功能测试用例

本文详细列举了即时通讯应用的各种功能测试用例,包括单聊与群聊的消息发送、接收、排序、存储,离线消息处理,文件发送,用户在线状态,网络条件,@功能,消息提醒,屏蔽设置,消息大小限制,敏感词过滤,消息链接可访问性,消息操作(复制、粘贴、转发、撤回)等关键场景。旨在确保通讯系统的稳定性和用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.消息内容类型:纯文字、纯图片、纯表情、文字+表情、文件

2.发送键:点击“发送”发送、使用快捷键发送(电脑端)

3.用户在线状态:在线状态、离线状态

4.网络情况:网络正常、网络异常

5.群聊情况:@功能(@个人、@多个人、@所有人 )、提醒功能(被@到时,进入群聊是否提示“有人@”)
群聊聊天数量统计是否正常

群聊信息较多时,是否有一键到上次看到的消息,从哪开始

综合以上情况设计用例:

1.单聊:发送文字/表情/图片,对方是否能接收成功,且消息发送时间排序正常,聊天记录条数是否正常

2.群聊:发送文字/表情/图片,对方是否能接收成功,且消息发送时间排序正常,聊天记录条数是否正常

3.离线状态下,是否支持消息发送?发送失败后,是否支持重新发送?

4.离线状态下,是否支持接收消息?在线后,是否正常接收到离线消息?

5.未加好友状态下:搜索QQ号开启的临时会话,是否能发送文字/表情/图片/文件;群聊开启的临时会话,群主没有设置不可发起临时会话,是否能发送文字/表情/图片/文件;群主设置了不可发起临时会话,是否能发送文字/表情/图片/文件

6.在线用户发送文件给离线用户,发送到一半时,中断后,是否能继续再次发送

7.在线用户发送文件时,是否能够正常接收

8.屏蔽功能开启和关闭:屏蔽功能开启后,是否屏蔽消息提醒,但是还是可以点开查看消息?屏蔽功能关闭后,是否正常接收消息并提醒?

9.发送文字、图片、文件的最大限制

10.发送内容为空或纯空格,是否支持发送?

11.发送内容包含敏感字眼时,是否被和谐?

12.@个人、多个、全部,是否有消息提示

13.消息中发送的网址,是否支持打开?

14.已经发送和接收的消息,是否支持复制或粘贴或转发?

15.已经发送的消息是否支持撤回,撤回时间有效性验证

16.频繁下拉上划刷新页面,页面是否正常

<think>好的,我现在需要帮助用户寻找关于企业微信推送功能的测试或示代码。首先,我应该回顾用户提供的引用内容,看看是否有相关的信息。 引用[1]提到Pytest将用执行结果发送到企业微信群,并告知具体通过和失败的用数量,同时@负责人。这可能涉及到如何获取测试结果并发送到企业微信的方法。引用[4]详细说明了企业微信API的调用顺序,包括获取access_token、上传临时素材和发送应用消息,特别是文件消息的中文乱码问题。这可能对编写测试有帮助,比如测试文件上传和消息发送的正确性,以及处理编码问题。 接下来,我需要根据这些引用信息来构建测试测试通常包括正常场景、异常场景和边界条件。如,正常发送文本消息、发送带附件的消息、处理token失效的情况等。此外,还需要考虑性能测试,比如高并发下的消息推送是否稳定。 然后,我应该考虑示代码的结构。可能需要使用Python的requests库来调用企业微信的API,比如获取access_token,然后发送不同类型的消息。同时,需要处理可能的异常,比如网络错误或API返回的错误码。 在引用[4]中提到的中文名称乱码问题,可能需要特别注意编码设置,比如在请求头中指定正确的Content-Type,确保中文字符正确传输。此外,上传临时素材的步骤也需要在测试中覆盖,验证文件是否正确上传并能作为消息发送。 另外,用户可能希望测试能够集成到自动化测试框架中,比如Pytest,这样可以在每次执行测试后自动发送结果到企业微信。引用[1]和[2]提到了使用Pytest和钉钉通知,这可能作为参考,将类似的逻辑应用到企业微信的推送中。 最后,需要确保测试的覆盖率,包括各种消息类型(文本、文件、图片等)、错误处理(如无效token、权限不足)以及性能方面。同时,代码示应该简洁明了,展示关键步骤,如认证、消息构建和发送,以及结果验证。</think>### 企业微信推送功能测试及示代码 以下是基于企业微信API推送功能的测试设计及Python代码示,涵盖关键功能点和异常场景。 --- #### **一、测试设计** 1. **正常场景** - **用1**:发送纯文本消息到指定用户/部门 验证:消息内容完整显示,接收方正确匹配。 - **用2**:发送带有附件的消息(文件/图片) 验证:附件上传成功,消息中可下载且内容无损坏[^4]。 - **用3**:通过模板消息推送结构化数据 验证:模板参数渲染正确,符合微信格式要求[^3]。 2. **异常场景** - **用4**:使用过期的`access_token`发送消息 验证:API返回`40001`错误码并触发token刷新机制。 - **用5**:发送超长文本(超过2048字符) 验证:接口返回`40005`错误码提示内容超限。 - **用6**:上传非支持的附件类型(如.exe文件) 验证:上传接口返回`40004`错误码。 3. **性能场景** - **用7**:高并发推送消息(如100条/秒) 验证:企业微信API响应时间≤500ms,无消息丢失。 --- #### **二、示代码(Python)** ```python import requests class WeComPush: def __init__(self, corp_id, corp_secret, agent_id): self.base_url = "https://qyapi.weixin.qq.com/cgi-bin" self.corp_id = corp_id self.corp_secret = corp_secret self.agent_id = agent_id self.access_token = self._get_access_token() def _get_access_token(self): url = f"{self.base_url}/gettoken?corpid={self.corp_id}&corpsecret={self.corp_secret}" resp = requests.get(url).json() if resp['errcode'] == 0: return resp['access_token'] else: raise Exception(f"获取token失败: {resp['errmsg']}") def send_text_message(self, content, user_ids="@all"): url = f"{self.base_url}/message/send?access_token={self.access_token}" payload = { "touser": user_ids, "msgtype": "text", "agentid": self.agent_id, "text": {"content": content} } resp = requests.post(url, json=payload).json() return resp['errcode'] == 0 # 测试 def test_text_message_push(): wecom = WeComPush(corp_id="YOUR_CORP_ID", corp_secret="YOUR_SECRET", agent_id=1000002) # 正常场景测试 assert wecom.send_text_message("测试消息:服务正常") is True # 异常场景测试(模拟无效token) wecom.access_token = "invalid_token" assert wecom.send_text_message("测试无效token") is False ``` --- #### **三、关键验证点** 1. **认证流程** 通过`gettoken`接口获取有效凭证,失败时需重试机制。 2. **消息编码** 中文字符需使用`utf-8`编码,避免乱码(如上传文件名处理)。 3. **结果断言** 根据API响应码`errcode`判断成功(0)或失败(非0)[^3]。 --- #### **四、集成自动化测试** 参考Pytest框架实现结果通知(如引用[1]): ```python # conftest.py中配置钩子 def pytest_terminal_summary(terminalreporter): passed = len(terminalreporter.stats.get('passed', [])) failed = len(terminalreporter.stats.get('failed', [])) wecom = WeComPush(corp_id="xx", corp_secret="xx", agent_id=xx) wecom.send_text_message(f"测试完成:通过{passed}条,失败{failed}条") ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值