精华内容
下载资源
问答
  • 2021-05-22 09:16:38

    前言

    在使用消息队列时不可避免的会遇到顺序消费、重复消费、消息丢失三个问题。在一次面试字节的时候,面试官问到如何保证顺序消费,当时回答不太准确,特意此文回顾如何解决顺序消费、重复消费、消息丢失三个问题。

    重复消费

    解决重复消费的关键在于消费方的幂等

    幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。
    幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。

    幂等操作根据场景的不同可以分为:

    (1)强校验

    场景:如与金钱相关的支付等关键消息,必须强校验。

    基于数据库的唯一键来保证重复数据不会被插入多条。建立一个已消费消息的表,每次消费之前检查消费表中当前消费的消息是否已经存在,若存在表示消息已经被消费过直接返回。

    (2)弱校验

    场景:可以有小概率出现重复消费的非关键消息

    基于Redis的实现

    1. 使用set结构实现。每次消费前查看set中是否已经存在待消费的消息的唯一标识符,不存在则消息,存在则直接返回。
    2. 场景唯一标识+id作为Redis的key,并设置一定的过期时间。每次消费时检查key是否已经存在,存在则直接返回

    顺序消费

    RocketMQ提供两种顺序消息模式:

    • 普通顺序消息
      普通顺序消费模式下,消费者通过同一个消费队列收到的消息是有顺序的,不同消息队列收到的消息则可能是无顺序的。普通顺序消息在 Broker 重启情况下不会保证消息顺序性 (短暂时间) 。
    • 严格顺序消息
      严格顺序消息模式下,对于指定的一个 Topic,所有消息按照严格的先入先出(FIFO)的顺序进行发布和消费。严格顺序消息 即使在异常情况下也会保证消息的顺序性

    严格顺序虽然能更好的保证消息有序,但实现它可会付出巨大的代价。如果你使用严格顺序模式,Broker 集群中只要有一台机器不可用,则整个集群都不可用。
    一般而言,我们的 MQ 都是能容忍短暂的乱序,所以推荐使用普通顺序模式。

    顺序消费的实现

    在MQ的模型中,顺序需要由3个阶段去保障:

    1. 消息被发送时保持顺序
    2. 消息被存储时保持和发送的顺序一致
    3. 消息被消费时保持和存储的顺序一致

    消息被发送时保持顺序

    使用严格顺序模式

    严格顺序消息模式下,对于指定的一个 Topic,所有消息按照严格的先入先出(FIFO)的顺序进行发布和消费。因此只要保证消息同步发送(发完一条后再发下一条)即可保证消息发送时保持顺序。

    使用普通顺序模式

    普通顺序模式下,只有同一个队列的消息能保证有序。Producer 生产消息的时候会进行轮询(根据设定的负载均衡策略)来向同一主题的不同消息队列发送消息。那么如果此时有几个消息分别是同一个订单的创建、支付、发货,在轮询的策略下这 三个消息会被发送到不同队列 ,因为在不同的队列此时就无法使用 RocketMQ 带来的队列有序特性来保证消息有序性了。
    因此使用普通顺序时,在同步发送的基础上,还需要将消息发送到相同的队列。
    在RocketMQ中,通过MessageQueueSelector来实现队列的选择。通过对订单的唯一标识符取hash,将同一个订单的消息发送到相同的队列。

    消息被消费时保持和存储的顺序一致

    在分布式的情况下,即使消息队列有序的将消息发送给消费者,也可能因为网络等原因,导致消费者接收到的消息无序。如:按顺序发送消息a、b给消费者。虽然a先发送,但因为网络原因,消息a在网络中滞留一段时间,导致消费者收到的消息顺序为b、a。同时,若同一个队列的消息由不同消费者消费也可能出现以上情况。

    消费者顺序消费消息的实现

    基于以上分析,要保证消息顺序的被消费者消费,必须满足下列条件:

    1. 同一个订单的消息由同一个消费者消费
    2. 消费者消费完一条消息之后,才可以接着消费下一条
    (1)同一个消费者消费

    类似于通过订单id的hash选择相同的队列,可以通过订单的hash选择同一个消费者同步消费(消费完一条后再拉取下一条,单线程消费),保证同一个订单的顺序消费

    (2)通过 consumer 内部用内存队列做排队,然后分发给底层不同的 worker 实现(实现复杂)

    若消费者是多线程,此时在消费者内部建立内存队列。先将消息拉取到内存队列后,在分发给不同的线程

    消息丢失

    消息的可靠性需要由3个阶段去保障:

    1. 发送端消息可靠性
    2. 存储端消息可靠性
    3. 消费端消息可靠性

    发送端消息可靠性

    消息发送一般有以下几种方式:同步发送、异步发送以及单向发送,业务具体选择哪种方式进行消息发送,需要根据情况进行判断,下面具体介绍不同的发送方式实现的消息可靠性保证。

    (1)同步发送

    同步发送是指发送端在发送消息时,阻塞线程进行等待,直到服务器返回发送的结果。发送端如果需要保证消息的可靠性,防止消息发送失败,可以采用同步阻塞式的发送,然后同步检查Brocker返回的状态来判断消息是否持久化成功。如果发送超时或者失败,则会默认重试2次,RocketMQ选择至少传输成功一次的消息模型,但是因为网络传输是不可靠的,有可能发生重复投递。

    (2)异步发送

    异步发送是指发送端在发送消息时,传入回调接口实现类,调用该发送接口后不会阻塞,发送方法会立即返回,回调任务会在另一个线程中执行,消息发送结果会回传给相应的回调函数。具体的业务实现可以根据发送的结果信息来判断是否需要重试来保证消息的可靠性。

    (3)单向发送

    单向发送是指发送端发送完成之后,调用该发送接口后立刻返回,并不返回发送的结果,业务方无法根据发送的状态来判断消息是否发送成功,单向发送相对前两种发送方式来说是一种不可靠的消息发送方式,因此要保证消息发送的可靠性,不推荐采用这种方式来发送消息。

    存储端消息可靠性

    存储端的可靠性依靠持久化策略、备份(主从复制)保证

    RocketMQ刷盘机制

    同步刷盘

    消息写入内存的 PageCache后,立刻通知刷盘线程刷盘,然后等待刷盘完成,刷盘线程执行完成后唤醒等待的线程,返回消息写成功的状态。这种方式可以保证数据绝对安全,但是吞吐量不大。

    异步刷盘

    消息写入到内存的 PageCache中,就立刻给客户端返回写操作成功,当 PageCache中的消息积累到一定的量时,触发一次写操作,或者定时等策略将 PageCache中的消息写入到磁盘中。这种方式吞吐量大,性能高,但是 PageCache中的数据可能丢失,不能保证数据绝对的安全

    消费端消息可靠性

    (1)消费重试

    消费者从RocketMQ拉取到消息之后,需要返回消费成功来表示业务方正常消费完成。因此只有返回CONSUME_SUCCESS才算消费完成,如果返回CONSUME_LATER则会按照不同的messageDelayLevel时间进行再次消费,时间分级从秒到小时,最长时间为2个小时后再次进行消费重试,如果消费满16次之后还是未能消费成功,则不再重试,会将消息发送到死信队列,从而保证消息存储的可靠性。

    (2)死信队列

    未能成功消费的消息,消息队列并不会立刻将消息丢弃,而是将消息发送到死信队列,其名称是在原队列名称前加%DLQ%,如果消息最终进入了死信队列,则可以通过RocketMQ提供的相关接口从死信队列获取到相应的消息,保证了消息消费的可靠性。

    (3)消息回溯

    回溯消费是指Consumer已经消费成功的消息,或者之前消费业务逻辑有问题,现在需要重新消费。要支持此功能,则Broker存储端在向Consumer消费端投递成功消息后,消息仍然需要保留。重新消费一般是按照时间维度,例如由于Consumer系统故障,恢复后需要重新消费1小时前的数据。RocketMQ Broker提供了一种机制,可以按照时间维度来回退消费进度,这样就可以保证只要发送成功的消息,只要消息没有过期,消息始终是可以消费到的。

    参考

    更多相关内容
  • 手机测试用例-短消息测试用例

    千次阅读 2019-09-23 15:36:59
    ID 功能描述 操作步骤 ...1 短信息 1.1创建、编辑短消息并发送 书写短消息 进入书写短消息 分别使用菜单或快捷方式进入书写短消息 正确进入 空信...
    ID功能描述操作步骤预期结果test timeP/Fcommenttestertest timeP/Fcommenttester
    1 短信息
    1.1创建、编辑短消息并发送
    书写短消息
    进入书写短消息分别使用菜单或快捷方式进入书写短消息正确进入
    空信息1、进入“写信息”界面 2、0个字符,选择、输入号码发送成功发送
    1、进入“写信息”界面 2、输入1个中文字符或1个字母发送成功发送
    1、进入“写信息”界面 2、输入35个中文或80个英文字母发送成功发送
    1、进入“写信息”界面 2、输入70个中文或160个英文字母发送成功发送
    输入文本过程来电1、在输入文本过程中,有来电呼入 2、进行接听、拒听操作后原编辑的短消息应保留;按听后,再次进入输入文本界面继续编辑,是否有异常
    输入文本过程来短消息1、在输入文本过程中有新短消息进入 2、继续编辑完短消息后,再退出阅读 3、输入文本过程中,有新短消息进入,按挂机键或右软键退出后,阅读短消息1、应不影响继续输入
    输入文本过程来闹钟1、在输入文本过程中有来闹钟 2、按返回1、应不影响继续输入
    输入文本过程来新事件1、在输入文本过程中有来新事件1、应不影响继续输入
    输入文本过程有低电量警告1、在输入文本过程中有低电量警告1、应不影响继续输入
    输入文本过程中自动关机1、在输入文本过程中 2、自动关机时间到正常关机
    输入文本界面按任意无效键1、在书写短消息的任何界面 2、分别按右软键、挂机键、方向键退出或按任意无效键正常
    输入文本过程中插拨充电器1、进入文本输入界面 2、不断插拨充电器(USB、电源)不影响继续输入
    输入文本过程中插拨耳机1、进入文本输入界面 3、不断插拨耳机不影响继续输入
    从PB中选择收件人1、进入“写信息”界面 2、编辑新信息,按确认键选择发送 3、在号码发送界面按选择键 4、选择要发送的联系人并按确认键1、进入信息的编辑界面 2、进入号码发送界面 3、正确进入通讯录列表界面 4、联系人号码正确被添加至号码输入界面
    sms_014收件人号码不正确(长度过长、号码不存在、有符号等)1、在写信息的窗口,“编辑”一条短信。短信长度为max/normal/empty(通过常用短语选择或直接输入) 2、输入收件人号码不正确 3、点击确定1、弹出提示信息窗口“发送失败已存至发件箱” 2、窗口显示正确
    sms_015Phone中的信息满时,发送SMS1、确认此时PHONE中的短信已存满为200条 2、在写信息的窗口,“编辑”一条短信。短信长度为max/normal/empty(通过常用短语选择或直接输入) 3、输入收件人号码(从PB中选择或直接输入号码),号码长度<=20位,该项视不同的项目而定 4、选择“发送”1、显示“发送的动画” 2、在发送结束后,弹出提示信息窗口“发送成功/失败”,同时返回到初始窗口(选择编辑信息类型的窗口)。 3、如果发送失败,则相应的进入发件箱中查看,显示规则同上 4、窗口显示正确
    sms_016发送EMS(超长短信)的验证1、在写信息的窗口,“编辑”一条EMS。EMS长度为max/normal(通过常用短语选择或直接输入)。 2、输入收件人号码(从PB中选择或直接输入号码),号码长度<=20位 ,该项视不同的项目而定 3、选择“发送”1、显示“发送的动画” 2、在发送结束后,弹出提示信息窗口“发送成功/失败”,同时返回到初始窗口(选择编辑信息类型的窗口)。 3、如果发送失败,相应的进入发件箱中查看 4、窗口显示正确
    sms_017SMS发送失败1、在写信息的窗口,“编辑”一条短信。短信长度为max/normal/empty(通过常用短语选择或直接输入) 2、输入收件人号码(从PB中选择或直接输入号码),号码长度<=20位,该项视不同的项目而定 3、选择“发送” (注:失败的原因有多种。如网络不好,短信中心号码不正确,收件人不正确等)1、显示“发送的动画”(正确显示收件人的号码或名称) 2、在发送失败后,弹出提示信息窗口“发送失败”。 3、进入到短信发件箱查看。发件箱中信息显示正确(发送失败的号码或联系人名称) 4、窗口显示正确
    sms_018群发短信1、编辑完短信后在发送选项里选择多方发送,在编辑清单内输入号码或进入PB选择号码 。(最多可输入10个号码) 2、选择“发送” 3、 信息内容: 可任意输入1、收件人号码或联系人名称显示正确 2、进入到信息发送过程 3、窗口显示正确
    sms_019从PB中选择收件人1、在写信息窗口中,点“收件人”,进入到PB中联系人列表 2、选中一个联系人,按下“确定”返回到写信息的窗口 。该项视不同的项目而定 3、选择“发送” 4、 信息内容: 可任意输入1、收件人号码或联系人名称显示正确 2、进入到信息发送过程 3、窗口显示正确
    sms_020PB中没有记录1、PB中没有任何的记录 2、在写信息窗口中,点“收件人”1、弹出提示信息“空白” 2、窗口显示正确
    sms_021从PB中选择和直接输入联系人号码1、从PB中选择和直接输入联系人 2、选择“发送” 3、信息内容: 可任意输入1、收件人号码或联系人名称显示正确 2、进入到信息发送过程 3、窗口显示正确
    手动输入收件人号码1、进入“写信息”界面 2、编辑新信息,按确认键选择发送 3、在号码发送界面输入号码(或输入满)并按确定键1、进入信息的编辑界面 2、正确进入输入号码界面,在该界面还未输入号码时,左软键显示为“选择”,当有号码时左软键显示为“确定” 3、进入发送、保存选择界面,能够成功发送该信息
    sms_005存储SMS至发件箱(存储至Phone)1、确认存储方式为“phone" 2、在写信息的窗口,“编辑”一条短信。短信长度为max/normal/empty。(通过常用短语选择或直接输入) 3、选择“存储” 4、收件人:可任意输入1、弹出提示信息“短信息已存储至发件箱”,并返回到写信息的窗口 2、查看保存的记录,记录内容及显示正确 3、窗口显示正确
    sms_006不退出写信息窗口,连续存储SMS至发件箱(存储至Phone)1、确认存储方式为“phone" 2、在写信息的窗口“编辑”一条短信。短信长度为max/normal/empty。(通过常用短语选择或直接输入) 3、选择“存储” 4、提示保存成功或失败后,不退出写信息的窗口,并再次选择“存储”5、收件人:可任意输入1、弹出提示信息“短信息已存储”,并返回到写信息的窗口 2、查看保存的记录,记录内容及显示正确:覆盖原记录,显示最后一次保存的结果 3、窗口显示正确
    sms_007Phone中信息条数达到最大后,自动切换存储位置1、Phone中信息条数为最大值为200条 2、在写信息的窗口,“编辑”一条短信。短信长度为max/normal/empty。(通过常用短语选择或直接输入) 3、选择“存储” 4、收件人:可任意输入1、弹出提示信息“消息已存储”,并返回到写信息的窗口 2、查看保存的记录,记录内容和存储介质显示正确 3、进入SMS/EMS设置中,查看存储类型,存储类型为SIM card 4、窗口显示正确
    sms_008存储SMS至发件箱(存储至SIM card)1、确认存储方式为“sim card" 2、在写信息的窗口,“编辑”一条短信。短信长度为max/normal/empty。(通过常用短语选择或直接输入) 3、选择“保存至草稿箱” 4、收件人:可任意输入1、显示存储的动画,并弹出提示信息“消息已存储”,并返回到写信息的窗口 2、查看保存的记录,记录内容及存储介质显示正确 3、窗口显示正确
    sms_009存储SMS至发件箱,直至SIM CARD中信息满1、确认存储方式为“sim card" 2、在写信息的窗口,“编辑”一条短信。短信长度为max/normal/empty。(通过常用短语选择或直接输入) 3、选择“存储” 4、收件人:可任意输入 5、重复步骤1、-4、,直至sim card中信息已满1、显示存储的动画,并弹出提示信息“消息已存储” ,并返回到写信息的窗口 2、窗口显示正确 3、查看保存的记录,记录内容及存储介质显示正确 4、窗口显示正确
    sms_010在SIM CARD已满的情况下,存储SMS至发件箱1、确认存储方式为“sim card" ,且sim card中信息已存满 2、在写信息的窗口,“编辑”一条短信。短信长度为max/normal/empty。(通过常用短语选择或直接输入) 3、选择“存储” 4、收件人:可任意输入1、弹出信息已满的提示,返回到写信息的窗口 2、窗口显示正确
    sms_012当phone和sim card中的信息全满的情况下,保存短信1、sim card 和phone中的信息全满 2、保存信息1、弹出信息已满的提示 2、窗口显示正确
    群发1、进入“写信息”界面 2、编辑新信息,按确认键选择发送 3、在号码发送界面输入多个号码或在电话簿(1个或多个号码)里选择多个号码1、进入信息的编辑界面 2、正确进入输入号码界面,在该界面还未输入号码时,左软键显示为“选择”,当有号码时左软键显示为“确定” 3、进入发送、保存选择界面,能够成功发送该信息
    sms_022多方发送短信,并全部发送成功1、在写信息的窗口,“编辑”一条短信。短信长度为max/normal/empty(通过常用短语选择或直接输入) 2、输入收件人号码(从PB中选择或直接输入号码),收件人为N(1<N<=10最大多方传送个数) 3、选择“发送”1、显示“发送的动画”(正确显示收件人的号码或名称) 2、在发送结束后,弹出提示信息窗口“发送成功”,同时返回到初始窗口(选择编辑信息类型的窗口)。 3、窗口显示正确
    sms_023多方发送短信,未全部发送成功1、在写信息的窗口,“编辑”一条短信。短信长度为max/normal/empty(通过常用短语选择或直接输入) 2、输入收件人号码(从PB中选择或直接输入号码),收件人为N(1<N<=10最大群发个数) 3、选择“发送”1、显示“发送的动画”(正确显示收件人的号码或名称) 2、遇到发送失败,则弹出“发送失败”的提示信息 3、进入到发件箱中,查看信息记录,记录显示正确 4、窗口显示正确
    sms_024群发失败后,重新发送,并发送成功在发件箱中,选择“发送”1、显示“发送的动画”(正确显示收件人的号码或名称) 2、在发送结束后,弹出提示信息窗口“发送成功”,同时返回到初始窗口(选择编辑信息类型的窗口)。 3、进入到已发送信箱中,查看已发送的信息记录,记录显示正确,并且原发件箱中对应的记录消失 4、窗口显示正确
    sms_025群发失败后,重新发送,并发送失败在发件箱中,选择“发送”1、显示“发送的动画”(正确显示收件人的号码或名称) 2、遇到发送失败,则弹出“发送失败已存储至发件箱”的提示信息,并继续发送剩余的信息,直至全部发送结束 3、进入到发件箱中,查看信息记录,记录显示正确 4、窗口显示正确
    sms_026群发EMS部分的验证1、在写信息的窗口中,输入或从PB中选择30个以上的收件人 2、信息内容:可任意输入 3、选择“发送”1、弹出提示信息“收件人太多”2、窗口显示正确
    sms_027插入一条常用短语,发送短信1、在写信息的窗口中,选择“常用短语”,进入到常用短语列表 2、在常用短语中选择一条系统定义的短语或自定义的短语 3、在写信息的窗口中,选择“发送”1、常用短语插入后,显示正确 2、进入短信发送的窗口 3、窗口显示正确
    sms_028连续插入常用短语,发送短信或EMS1、在写信息的窗口中,选择“常用短语”,进入到常用短语列表 2、在常用短语中选择一条系统定义的短语或自定义的短语 3、重复步骤1、-2、,直至长度达到最大 4、在写信息的窗口中,选择“发送”1、常用短语插入后,显示正确 2、进入到信息的发送窗口 3、窗口显示正确
    sms_029发送失败的验证1、发送信息,若mo方提示发送失败 2、检查mt方确认信息的确没有收到
    sms_029在一段时间内连续发送20条以上的短信和连续接收20条以上的短信1、在一段时间内连续发送几十条短信,包括自发自收和发送时正在接收(如发送10086到10086); 2、在暗屏状态下连续接收20条以上的短信,每次必须在暗屏状态下接收1、能正常发送和接收短信;2、在暗屏状态下能正常接收短信,并且不会发生间隔很长时间才收到短信的现象(排除网络原因)
    收件人发送失败1、进入“写信息”界面 2、编辑新信息,按确认键选择“仅发送” 3、进入输入号码界面 4、按确认键输入无法发送到的号码 5、按确认键选择“发送”1、信息发送失败,弹出pop提示框“发送失败”,界面正确返回保存、发送选择界面,发送失败的信息会直接保存到发件箱中
    插入常用短语1、进入“写信息”界面 2、选项-插入常用短语 3、选择任意一条常用短语1、在输入文本界面光标位置准确插入一条常用短语
    插入对象(图片)1、进入“写信息”界面 2、选项-插入对象-图片 3、选择任意图片1、在输入文本界面光标位置准确插入图片
    插入对象(动画)1、进入“写信息”界面 2、选项-插入对象-动画 3、选择任意动画1、在输入文本界面光标位置准确插入动画
    插入对象(铃声)1、进入“写信息”界面 2、选项-插入对象-铃声 3、选择任意铃声1、在输入文本界面光标位置准确插入铃声
    文字大小1、进入“写信息”界面 2、选项-文字格式-文字大小 3、选择大、中、小不同的大小作比较1、大、中、小文字大小有相应变化
    字体1、进入“写信息”界面 2、选项-文字格式-字体 3、选择不同的字体 4、输入并对比1、准确输入不同的字体 2、字体相对应的描述准确
    对齐1、进入“写信息”界面 2、选项-文字格式-对齐 3、选择不同的对齐方式 4、输入文字1、对齐方式对应的描述准确 2、对齐效果准确
    新段落1、进入“写信息”界面 2、选项-文字格式-新段落 3、选择不同的段落方式 4、输入文字1、段落方式对应的描述准确 2、段落效果准确
    插入电话号码1、进入“写信息”界面 2、选项-插入电话号码 3、选择任意电话号码(单个号码、多个号码)1、在输入文本界面光标位置准确插入电话号码
    插入电话簿姓名1、进入“写信息”界面 2、选项-插入电话簿姓名 3、选择任意电话簿姓名1、在输入文本界面光标位置准确插入电话簿姓名
    插入书签1、进入“写信息”界面 2、选项-插入书签 3、选择任意书签1、在输入文本界面光标位置准确插入书签地址
    阅读短消息
    sms_057收件箱排序功能的验证1、进入收件箱,查看信息列表记录排序正确,一般是按照时间排序(新收到的记录在前面)
    2.1.1进入读短消息(读短消息为空)1、在短消息主菜单界面选择读短消息菜单进入1、界面正确弹出“收件箱空”的提示
    2.1.2进入读短消息(读短消息不为空)1、在短消息主菜单界面选择读短消息菜单进入1、正确进入读短消息收件箱,界面显示正确
    2.1.3浏览读短消息收件箱信息1、进入读短消息菜单后,按上下键浏览读短消息菜单1、能够正确浏览读短消息收件箱中所有存储的短消息
    2.1.5查看读短消息收件箱中任意短消息1、在短消息主菜单界面选择读短消息菜单进入 2、进入后按上下键移动光标选择任意一条短消息,按确定键1、正确进入读短消息收件箱,界面显示正确 2、正确进入短消息阅读界面,短消息内容显示正确
    2.1.6接收短信息,信息图标验证1、在待机界面收到新信息,进入通知界面 2、按“选择”,进入读短消息收件箱列表界面,观察信息前小图标显示1、待机界面收到新信息,新信息通知界面显示正确,短信提示音正确 2、小图标显示未读短信图样
    验证信息的时间1、在待机界面收到新信息,进入通知界面 2、按“选择”,进入读短消息收件箱列表界面,观察信息的时间1、时间正确无误
    验证发件人号码 (未保至电话簿)1、在待机界面收到新信息,进入通知界面 2、按“选择”,进入读短消息收件箱列表界面,观察发件人的号码1、发件人号码正确显示
    验证发件人号码 (已保至电话簿)1、在待机界面收到新信息,进入通知界面 2、按“选择”,进入读短消息收件箱列表界面,观察发件人的号码1、发件人号码显示为电话簿的姓名
    验证发件人号码较长时界面1、在本信箱列表里 2、选择中发件人号码较长的信息1、号码滚动显示正确
    2.1.7接收新信息并阅读1、在待机界面收到新信息 2、在通知界面按“选择”键1、界面进入信息通知界面,短信提示音正确 2、进入短信阅读界面,短信内容及对方发送者的信息显示正确,信息栏上未读短信图标消失
    2.1.8接收新信息不阅读1、在待机界面收到新信息 2、在通知界面按返回键1、界面进入信息通知界面,短信提示音正确 2、界面返回idle界面,但上状态栏短信未读图标依然显示正确
    2.1.9刚接收信息不阅读,返回后在进入收件箱阅读1、在待机界面收到新信息 2、在通知界面按返回键 3、从信息主菜单进入选择读读短消息进入 4、选择未读短信进行查看1、界面进入信息通知界面,短信提示音正确 2、界面返回idle界面,但上状态栏短信未读图标依然显示正确 3、读短消息收件箱界面显示正确 4、进入短信阅读界面,短信内容及对方发送者的信息显示正确,信息栏上未读短信图标消失
    快速浏览列表时,有来电呼入、闹钟响闹、来新短消息1、进入收件箱列表 2、快速浏览列表 3、接收来电、闹钟、新短消息、消息送达报告、新事件显示正常
    通话中阅读短消息3、通话中进入收信箱阅读短消息;
    阅读短消息时来电1、阅读短消息时 2、有来电呼入 3、拒听、接听1、准确阅读短消息 2、通话结束后返回到阅读短消息界面
    快捷键阅读短消息按快捷键直接阅读新短消息
    接收不同的短消息1、接收不同参考机发送过来的短消息(符号、特殊符号) 2、查看发送过来的短消息1、接收正常 2、正常显示出消息内容
    阅读短消息过程中接收新短消息1、在阅读短消息中 2、有新短消息进入 3、阅读完短消息后,再退出阅读 或 1、阅读短消息时,有新短消息进入 2、按挂机键或右软键退出后,阅读新短消息1、有新短消息声音提示 2、不影响正常阅读短消息
    阅读短消息过程中来闹钟1、在阅读短消息的任何界面 2、闹钟响起1、闹钟响起提示正确 2、闹钟结束后返回到阅读消息界面
    阅读短消息过程中来新事件1、在阅读短消息的任何界面 2、接收到新事件1、有新事件声音提示 2、不影响正常阅读短消息
    阅读短消息过程中有低电量警告1、在阅读短消息的任何界面 2、有低电量警告正常
    阅读短消息过程中自动关机1、在阅读短消息的任何界面 2、自动关机时间到正常关机
    阅读短消息时按无效键1、在阅读短消息时 2、分别按右软键、挂机键、方向键退出或按任意无效键正常阅读
    阅读短消息过程中不断插拨充电器1、在阅读短消息时 2、反复插拔充电器(USB、电源)正常阅读
    阅读短消息过程中不断插拨耳机1、在阅读短消息时 3、反复插拔耳机正常阅读
    sms_032短信满的情况下,接收短信或EMS1、短信存储已满,包括存在手机及存在SIMcard中 2、向测试机发送一条短信或EMS1、无法再接收短信或EMS 2、idle有短信满的图标提示
    sms_033阅读后删除存在sim card中的信息1、收到一条存在Sim card中的新信息 2、阅读该信息 2、在阅读后不退出直接进入选项删除该信息1、在阅读后,ICON的中新短信的图标消失 2、显示正在删除的动画,弹出提示信息框“删除成功或失败”,并直接返回到收件箱列表 3、收件箱中计数显示正确 4、窗口显示正确 5、删除正确
    sms_034在阅读后,立即删除存在Phone中的信息1、收到一条存在phone中的新信息 2、阅读该信息 2、在阅读后不退出直接删除该信息1、在阅读后,ICON中新短信的图标消失 2、显示正在删除的动画,弹出提示信息框“删除成功或失败”,并直接返回到收件箱列表 3、收件箱中计数显示正确 4、删除正确 5、窗口显示正确
    sms_035在阅读后返回收件箱列表,并删除存在sim card中的信息1、收到新信息并阅读 2、在阅读后退出到收件箱列表,然后删除该信息1、显示正在删除的动画,并弹出提示信息框“删除成功/失败”,并直接返回到收件箱列表 2、删除正确 3、收件箱中计数显示正确 4、窗口显示正确
    sms_036在阅读后返回收件箱列表,并删除存在phone中的信息1、收到新信息并阅读 2、在阅读后退出到收件箱列表,然后删除该信息1、弹出提示信息框“删除成功/失败”,并直接返回到收件箱列表 2、收件箱列表显示正确 3、收件箱中计数显示正确 4、窗口显示正确
    sms_067验证草稿箱/收件箱等中计数的正确性1、进行一系列连续的操作,其中包括删除及阅读等操作 2、查看计数信息(总共条数,当前选中的信息条数)计数显示正确
    sms_068当草稿箱/收件箱等中无任何的信息时,验证菜单的显示1、草稿箱中无任何的信息 2、选择“菜单”1、菜单中的各项被“置灰”,不可选
    回复功能
    文本回复1、选取一条短消息进行文本回复 2、输入内容后按发送1、正确发送到该号码
    语音回复1、选取一条短消息进行语音回复1、呼叫该号码 2、显示该号码
    语音回复1、选取一条短消息(号码已储存在电话本上) 2、选择语音回复1、呼叫该号码 2、显示该号码在电话本中的姓名
    IP呼叫(IP列表为空)1、选取一条短消息进行IP呼叫1、提示IP为空
    IP呼叫(所有IP都关闭)1、选取一条短消息进行IP呼叫2、提示IP为空
    IP呼叫(IP已启动)1、选取一条短消息进行IP呼叫1、正确显示出正在呼叫界面 2、呼叫的号码前显示“IP” 3、电话能接通
    IP呼叫(IP已启动)1、选取一条短消息(号码已储存在电话本上) 2、选择IP呼叫1、正确显示出正在呼叫界面 2、呼叫的号码前显示“IP” 3、电话能接通
    IP呼叫(IP已启动)1、选取一条短消息(号码前有+86) 2、选择IP呼叫1、正确显示出正在呼叫界面 2、呼叫的号码前显示“IP” 3、电话能接通
    回复功能的任何界面,有来电、闹钟响闹、来新短消息、低电告警、自动关机时间到1、在执行回复功能的任何界面 2、有来电呼入、闹钟响闹、来新短消息、低电告警、自动关机时间到显示正常
    回复界面按任意键1、在执行回复功能任何界面 2、按左软键、右软键、挂机键、方向键或按任意无效键时各功能正常
    插入常用短语1、选取一条短消息进行回复 2、选项-插入常用短语 3、选择任意一条常用短语1、在输入文本界面光标位置准确插入一条常用短语
    插入对象(图片)1、选取一条短消息进行回复 2、选项-插入对象-图片 3、选择任意图片1、在输入文本界面光标位置准确插入图片
    插入对象(动画)1、选取一条短消息进行回复 2、选项-插入对象-动画 3、选择任意动画1、在输入文本界面光标位置准确插入动画
    插入对象(铃声)1、选取一条短消息进行回复 2、选项-插入对象-铃声 3、选择任意铃声1、在输入文本界面光标位置准确插入铃声
    文字大小1、选取一条短消息进行回复 2、选项-文字格式-文字大小 3、选择大、中、小不同的大小作比较1、大、中、小文字大小有相应变化
    字体1、选取一条短消息进行回复 2、选项-文字格式-字体 3、选择不同的字体 4、输入并对比1、准确输入不同的字体 2、字体相对应的描述准确
    对齐1、选取一条短消息进行回复 2、选项-文字格式-对齐 3、选择不同的对齐方式 4、输入文字1、对齐方式对应的描述准确 2、对齐效果准确
    新段落1、选取一条短消息进行回复 2、选项-文字格式-新段落 3、选择不同的段落方式 4、输入文字1、段落方式对应的描述准确 2、段落效果准确
    插入电话号码1、选取一条短消息进行回复 2、选项-插入电话号码 3、选择任意电话号码(单个号码、多个号码)1、在输入文本界面光标位置准确插入电话号码
    插入电话簿姓名1、选取一条短消息进行回复 2、选项-插入电话簿姓名 3、选择任意电话簿姓名1、在输入文本界面光标位置准确插入电话簿姓名
    插入书签1、选取一条短消息进行回复 2、选项-插入书签 3、选择任意书签1、在输入文本界面光标位置准确插入书签地址
    转发
    2.1.19信息编辑转发1、进入读短消息,选择一条信息阅读 2、在信息详细内容界面按确认键选择“编辑转发” 3、编辑短信内容1、正确进入短信阅读界面,短信内容显示正确 2、正确进入该短信编辑界面 3、短信内容可正确进行编辑
    2.1.20信息编辑转发(内容空)1、进入读短消息,选择一条信息阅读 2、在信息详细内容界面按确认键选择“编辑转发” 3、删除所有原信息内容,按确认键进行发送1、正确显示信息内容 2、正确进入该短信编辑界面 3、按确认键无任何反应,短信不支持空信息的发送
    2.1.21信息编辑转发(发送信息)1、进入收件箱,选择一条信息阅读 2、在信息详细内容界面按确认键选择“编辑转发” 3、对原信息内容进行编辑后,按确认键 4、选择“仅发送”,输入任意号码或选择电话簿中任意号码后进行发送1、正确显示信息内容 2、进入信息编辑界面,界面显示正确 3、进入发送选择界面 4、正确进入号码输入界面,能成功转发该条信息到输入的号码
    2.1.22信息编辑转发(保存信息)1、进入读短消息,选择一条信息阅读 2、在信息详细内容界面按确认键选择“编辑转发” 3、对原信息内容进行编辑后,按确认键 4、选择“仅保存”1、正确显示信息内容 2、进入信息编辑界面,界面显示正确 3、进入发送选择界面 4、弹出”消息已保存“的提示框,该条信息成功被保存至草稿箱
    2.1.23信息编辑转发(发送并保存)1、进入读短消息,选择一条信息阅读 2、在信息详细内容界面按确认键选择“编辑转发” 3、对原信息内容进行编辑后,按确认键 4、选择“发送并保存” 5、输入任意号码或选择电话簿中任意号码后进行发送1、正确显示信息内容 2、进入信息编辑界面,界面显示正确 3、进入发送选择界面 4、正确进入号码输入界面 5、能够正确发送该条信息,同时该条信息被成功保存至已发送
    2.1.24信息转发编辑满(发送并保存)1、进入读短消息,选择一条信息阅读 2、在信息详细内容界面按确认键选择“编辑转发” 3、对原信息内容进行编辑,编辑内容至满,按确认键 4、选择“发送并保存” 5、输入任意号码或选择电话簿中任意号码后进行发送1、正确显示信息内容 2、进入信息编辑界面,界面显示正确 3、输入满后,无法再继续输入,按确认键进入发送选择界面 4、正确进入号码输入界面 5、能够正确发送该条信息,同时该条信息被成功保存至发件箱
    转发至多人1、进入读短消息,选择一条信息阅读 2、在信息详细内容界面按确认键选择“编辑转发” 3、对原信息内容进行编辑后,按确认键 4、选择“发送至多人” 5、输入任意号码或选择电话簿中任意号码后进行发送1、正确显示信息内容 2、进入信息编辑界面,界面显示正确 3、进入发送选择界面 4、正确进入号码输入界面 5、能够正确发送该条信息
    转发至群组1、进入读短消息,选择一条信息阅读 2、在信息详细内容界面按确认键选择“编辑转发” 3、对原信息内容进行编辑后,按确认键 4、选择“发送至群组” 5、选择任意群组后进行发送1、正确显示信息内容 2、进入信息编辑界面,界面显示正确 3、进入发送选择界面 4、正确进入选择群组界面 5、能够正确发送该条信息
    提取号码
    提取号码(拨号)1、读取一条短消息后 2、选择提取号码功能并选择拨号1、列出该条信息里所有的数字号码 2、准确进行呼叫选中的号码
    提取号码(保存)1、读取一条短消息后 2、选择提取号码功能并选择保存 3、输入姓名等信息并保存 4、转到电话簿列表里查看该号码1、列出该条信息里所有的数字号码 2、保存到电话簿里
    提取号码(发送短信)1、读取一条短消息后 2、选择提取号码功能并选择发送短信 3、输入信息内容并发送1、列出该条信息里所有的数字号码 2、正确发送信息给该号码
    在提取号码任意界面来电、闹钟、短信等在操作提取号码功能的任何界面,有来电呼入、闹钟响闹、来新短消息、低电告警、自动关机时间到显示正常
    提取网址
    提取网址(信息有网址)1、读取一条短消息后 2、选择提取网址1、准确显示出网址
    提取网址(信息无网址)1、读取一条短消息后 2、选择提取网址1、提示无网址
    连接网址(网址有效)1、读取一条短消息后 2、选择提取网址 3、选择连接1、准确显示出网址 2、正确连接到该网址的WAP网页
    连接网址(网址无效)1、读取一条短消息后 2、选择提取网址 3、选择连接1、准确显示出网址 2、连接一段时间后提示错误 3、返回上一级菜单
    加入书签1、读取一条短消息后 2、选择提取网址 3、选择加入新书签 4、输入标题并保存1、准确显示出网址 2、该网址准确保存到书签里
    加入书签1、读取一条短消息后 2、选择提取网址 3、选择加入新书签 4、输入标题、修改地址并保存1、准确显示出网址 2、该网址准确保存到书签里
    加入书签1、读取一条短消息后 2、选择提取网址 3、选择加入新书签 4、输入标题但不保存1、准确显示出网址 2、返回上一级菜单 3、该网址没有保存到书签里
    删除功能
    sms_038直接删除未读短信1、收件箱中存有未读短信 2、不阅读,直接将其删除1、删除正确 2、ICON中图标显示正确 3、计数正确 4、窗口显示正确
    删除提示1、读取一条短消息后 2、选择删除/删除全部1、应有确认提示语界面出现,以防用户误操作
    删除单条信息1、读取一条短消息后 2、选择删除 3、确认删除1、短消息准确被删除 2、计数器显示正确
    删除单条信息1、读取一条短消息后 2、选择删除 3、放弃删除1、返回上级界面 2、短消息无丢失现象
    删除全部1、读取一条短消息后 2、选择删除全部 3、确认删除1、本信箱里的所有信息都被删除 2、计数器显示正确
    删除全部1、读取一条短消息后 2、选择删除全部 3、放弃删除1、返回上级界面 2、短消息无丢失现象
    多选删除1、读取一条短消息后 2、选择多选删除 3、按方向键选中短消息(选中1条、5条、10条、全部) 4、确认删除1、界面显示正确 2、选中的信息前显示√ 3、准确删除选中的信息 4、计数器显示正确
    多选删除1、读取一条短消息后 2、选择多选删除 3、按方向键选中短消息 4、放弃删除1、界面显示正确 2、选中的信息前显示√ 3、返回上一级 4、短消息无丢失现象
    多选删除1、读取一条短消息后 2、选择多选删除 3、确认删除1、界面显示正确 2、提示没有选中信息 3、计数器显示正确
    在删除的过程中来电1、在执行删除过程中(提示正在删除) 2、接收新来电 3、按接听、拒绝1、准确显示出来是界面 2、
    在删除的过程中接收新短消息1、在执行删除过程中(提示正在删除) 2、接收新短消息1、提示新短消息声音 2、删除继续进行
    在删除的过程中接收消息送达报告1、在执行删除过程中(提示正在删除) 2、接收消息送达报告1、提示消息送达报告声音 2、删除继续进行
    在删除的过程中接收闹钟1、在执行删除过程中(提示正在删除) 2、接收闹钟1、显示闹钟响起界面 2、
    在删除的过程中接收新事件1、在执行删除过程中(提示正在删除) 2、接收新事件1、提示新事件声音 2、删除继续进行
    在删除的过程中接收自动关机1、在执行删除过程中(提示正在删除) 2、自动关机时间到1、正确进行关机
    在删除的过程中提示低电量警告1、在执行删除过程中(提示正在删除) 2、提示低电量警告1、提示低电量警告声音 2、删除继续进行
    在删除的过程中按任意键1、在执行删除过程中(提示正在删除) 2、按任意键1、删除继续进行
    在删除的过程中插拨充电器(USB、电源)1、在执行删除过程中(提示正在删除) 2、插拨充电器1、删除继续进行
    在删除的过程中插拨耳机1、在执行删除过程中(提示正在删除) 2、插拨耳机1、删除继续进行
    短消息设置
    短消息容量测试
    容量全满时1、连续接收短消息至满1、应有图标或提示语出现
    SIM卡满,手机没满1、SIM卡容量已满,继续接收信息1、正确接收信息并保存至手机储存器
    手机满,SIM没满意1、手机满,SIM卡没满,继续接收信息1、正确接收信息并保存至SIM储存器
    容量满时继续接收信息1、在手机信息已溢出的情况下继续向其发送短消息1、手机应不予接收
    容量满时继续接收信息1、在短消息已溢出的情况下继续向其发送短消息 2、删除一条短消息1、可立即接收暂存在短消息中心的一条短消息;
    查询容量界面有来电、短消息、闹钟等1、在查看短消息容量的任何界面 2、有来电呼入、闹钟响闹、来新短消息、低电告警、自动关机时间到正常显示
    查询容量界面按任意键1、在执行短消息容量测试任何界面,按左软键、右软键、方向键、挂机键或按任意无效键1、各功能正常
    观察容量变化1、接收一条信息后 2、查看容量的变化 3、不断重复此操作1、容量应增加一
    设置短消息服务中心号码
    输入任意字符1、在输入中心号码时按键输入号码至最大位数,内容为0~9、*、#1、正常输入
    输入错误的号码1、在中心号码界面输入错误的号码并保存 2、编辑信息并发送1、提示发送失败
    输入正确的号码1、在中心号码界面输入正确的号码并保存 2、编辑信息并发送1、提示发送成功
    短消息中心号码界面有来电、新短消息等提示1、在设置短消息中心号码的任何界面 2、有来电呼入、闹钟响闹、来新短消息、低电告警、自动关机时间到1、显示正常
    信息类型的设定
    信息类型验证1、信息类型有文本、电子邮件、传真、语音、寻呼机等,选择不同的类型1、各功能正常
    2、在信息类型的任何界面,有来电呼入、闹钟响闹、来新短消息、低电告警、自动关机时间到、小区广播到,显示是否正常;
    4、在选择类型任何界面,按左软键、右软键、方向键、挂机键或按任意无效键时,各功能是否正常;在任何界面,按挂机键关机,再开机,显示是否正常;在输入文本过程中,反复插拔充电器,是否正常;
    信息有效时间的设定
    验证有效时间1、选择网络发送信息的持续时间,依据需要设置不同的时间1、信息有效时间是正确的
    2、在信息有效时间设定的任何界面,有来电呼入、闹钟响闹、来新短消息、低电告警、自动关机时间到、小区广播到,显示是否正常;
    4、在选择时间设定界面,按左软键、右软键、方向键、挂机键或按任意无效键时,各功能是否正常;在任何界面,按挂机键关机,再开机,显示是否正常;在输入文本过程中,反复插拔充电器,是否正常;
    信息提示
    验证信息提示音(单铃声)1、选择来新信息的提示方式为任意内置铃声 2、在任意界面接收新信息1、提示声正确响起
    验证信息提示音(铃声+振动)1、选择来新信息的提示方式为任意内置铃声+振动 3、在任意界面接收新信息1、提示声正确响起 2、振动器正确振动
    验证信息提示音(单振动)1、选择来新信息的提示方式为振动 2、在任意界面接收新信息1、无铃声 2、振动器正确振动
    验证信息提示音(静音)1、选择来新信息的提示方式为静音 2、在任意界面接收新信息1、无铃声、无振动
    信息送达报告
    开启送达报告1、选择开启送达报告 2、发送信息至对方1、提示送达报告已开启 2、对方成功接收到信息后本方接收到送达报告
    关闭送达报告1、选择关闭送达报告 2、发送信息至对方1、提示送达报告已关闭 2、对方成功接收到信息后本方不会接收到送达报告
    验证送达报告内容1、选择开启送达报告 2、发送信息至对方 3、观察送达报告内容1、提示送达报告已开启 2、对方成功接收到信息后本方接收到送达报告 3、送达报告显示的号码和时间准确
    交叉部分的验证
    sms_148在pb中发送信息1、进入pb,选择某条记录 2、选择“菜单”-“发送”-“sms”1、进入到写信息的窗口中,其中收件人为刚选中的联系人的号码
    sms_149在记事本中发送信息1、进入记事本,选择某条记录 2、在其详细内容窗口中,选择“菜单”-“sms”1、进入到写信息的窗口中,其中信息内容为记事本中记录的内容
    sms_150在通话记录中发送信息1、进入通话记录的各个列表窗口,选择某条记录 2、在其详细内容窗口中,选择“菜单”-“sms”1、进入到写信息的窗口中,其中收件人为刚选中的联系人的号码
    sms_151通话中发送信息1、在通话的窗口中,选择菜单中的电话本项,进入到pb的列表中 2、选中某条记录,并发送信息1、进入到写信息的窗口中,其中收件人为刚选中的联系人的号码 2、窗口显示正确
    sms_152通话中发送信息1、在通话的窗口中,选择“菜单”-“信息”1、进入到写信息的窗口中 2、窗口显示正确
    sms_153通话中阅读信息1、在通话的窗口中,选择菜单中的信息,进入到信息的列表中,点击收件箱,进入 2、选中某条记录阅读1、信息内容显示正确 2、窗口显示正确
    sms_154在弹出msgbox时来短信1、在弹出各个msgbox时来短信1、窗口显示正确 2、信息内容显示正确
    sms_155通话中收到信息,并选择“阅读”1、在通话的过程中,收到短信 2、有提示音,点击softkeybar的短信图标或是选择菜单中的信息 3、进入信息列表,选择收件箱,进入阅读新短信1、进入到收件箱列表 2、焦点停留在最新收到的信息记录上 3、记录内容显示正确 4、窗口显示正确 5、新短信到达的提示音正确: 有”嘟“的一声提示(不会播放短信到达的铃声) 6、在indicator bar中图标显示正确
    sms_156在发送信息的过程中,呼入一个电话在发送信息的过程中,呼入一个电话1、电话呼入窗口显示正确 2、可正确应答,或拒绝
    sms_157在发送信息的过程中,呼入一个电话(主叫方挂断)1、在发送信息的过程中,呼入一个电话 2、在呼入界面显示出来后,主叫方挂断电话1、测试机显示通话结束 2、返回到发送信息的窗口,窗口显示正确
    sms_158在通话并在阅读的界面中收到短信或ems1、在通话的过程中,收到一条短信或ems 2、选择”阅读“,并进入到详细信息的阅读窗口 3、此时,又收到一条短信或ems,返回到收件箱列表 4、进入到收件箱列表,选择新短信进行阅读可正确阅读。
    sms_159在发送信息的过程中,发送信息1、在发送信息的过程中,呼入一个电话并接通 2、在通话的过程中,选择“pb”-“send sms/ems” 3、或在通话的过程中,选择“inbox-“reply/forward”弹出提示信息窗口“正在发送信息”(直至发送结束,才可以进入到写信息的窗口)。
    sms_160在编辑信息的同时,保存信息1、进入写信息的窗口,编辑一条信息 2、呼入一个电话,测试机接通 3、在通话中,再次进入写信息的窗口1、可正确显示接通电话前编辑的短信窗口及短信内容
    sms_161在拍照或数据传输的过程中,收到信息1、在拍照保存提示“waiting...”时收到信息 2、在数据传输下载的过程中,收到信息1、新短信到达的提示音正确 2、在indicator bar中图标显示正确 3、收到的信息记录正确
    sms_162在游戏等其他窗口中收到信息在游戏等其他窗口中收到信息1、新短信到达的提示音正确 2、在indicator bar中图标显示正确 3、收到的信息记录正确
    sms_163在短信的各种操作中,闹铃或日程提醒到达在短信的各种操作中(如“发送,删除,保存,复制,阅读等),闹铃或日程提醒到达1、闹铃或日程提醒正确 2、窗口显示正确
    sms_164在闹铃或日程提醒响铃时,有短信或ems到达在闹铃或日程提醒响铃时,有短信或ems到达1、在indicator bar中显示未读短信的图标,有”嘟“的一声提示(不会播放短信到达的铃声) 2、进入收件箱,信息记录等显示正确。 3、窗口显示正确
    sms_165在发送彩信的过程中,发送短信或ems1、在发送彩信的过程中,按”红键“退出。 2、进入到写短信/ems的窗口,发送短信或ems1、发送窗口显示正确 2、彩信和短信或ems都可正确发送
    sms_166在发送彩信的过程中,存储短信或ems1、在发送彩信的过程中,按”红键“退出。 2、进入到写短信/ems的窗口,存储短信或ems存储正确
    sms_167在接收彩信的过程中,存储短信或ems1、在接收彩信的过程中,进入到写短信/ems的窗口 2、发送短信或ems1、发送窗口显示正确 2、彩信接收正确,如接收不成功,有正确的提示信息。 3、短信或ems都可正确发送
    sms_168在接收彩信的过程中,发送短信或ems1、在接收彩信的过程中,进入到写短信/ems的窗口 2、存储短信或ems存储正确
    sms_169在关机的过程中收到短信或ems关机的过程中收到短信或ems信息的相关操作正确,可正确关机,关机后重新开机,验证其正确性
    sms_170在收发信息的过程中,按“power”键关机在收发信息的过程中,按“power”键关机信息的相关操作正确,可正确关机
    极限测试
    sms_183当SIM卡满时收到短信1、sim卡满,再次给测试机发送一条短信; 2、给测试机发送多条短信,看是否异常1、短信自动保存到手机内存; 2、短信继续保存到手机内存至内存满(视项目而定)
    sms_183当SIM和手机收件箱都满时收到短信/当收件箱、发件箱和草稿箱都满时收到短信1、发送短信直至sim和手机短信都满; 2、此时再给测试机再发送一条和多条短信,看是否异常;3、查看收件箱中的短信,看短信内容和收件人是否异常;4、发件箱或草稿箱满时,继续发送保存;1、icon条上出现一个短信满的闪烁图标,并提示“短信满,请及时处理”(视项目而定);2、手机没有收到短信,也没有任何提示;3、收件箱中的短信正常;4、会保存最近的一条短信同事删除最后一条短信
    sms_183当短信满时做通讯操作1、当短信满时发送或接收sms、上网、拨打或接听来电;2、对手机的每个菜单都操作一遍看是否异常1、每一项操作都正常,不会发生重启以及死机白屏的现象
    sms_183当短信满时对收件箱、发件箱、草稿箱进行逐条删除和全部删除1、对收件箱,发件箱、草稿箱中的短信进行逐条删除和全部删除;2、当删除了20条以上短信时再查看一下短信内容和收件人查看是否异常,进入拍照,多媒体等是否异常,发送和接收短信是否异常1、能正常进行删除操作,不会发生重启以及死机白屏等现象
    小区广播
    开启小区广播1、进入小区广播并开启 2、输入频道并保存1、能接收小区广播信息
    关闭小区广播1、进入小区广播并关闭 2、输入频道并保存1、不可接收小区广播信息
    输入频道(为空)1、进入小区广播 2、选择增加频道 3、确认保存1、提示为空
    输入频道(范围内)1、进入小区广播 2、选择增加频道 3、输入0、1、5、9、00、11、99、000、111、999 4、确认保存1、准确增加频道
    输入频道(范围内)1、进入小区广播 2、选择增加频道 3、输入0、1、5、9、00、11、99、000、111、999 4、放弃保存1、返回上级界面 2、频道列表不变
    输入频道(范围外)1、进入小区广播 2、选择增加频道 3、输入0000、1111、9999、5555555等 4、确认保存1、无法输入3位数以上的频道 2、只保存前3位数的频道
    输入频道(范围内)1、进入小区广播 2、选择增加频道 3、输入0000、1111、9999、5555555等 4、放弃保存1、返回上级界面 2、频道列表不变
    编辑频道1、进行小区广播信息 2、选中一个频道并选择‘编辑’ 3、清空频道 4、输入新频道并保存1、准确清除频道 2、准确输入频道 3、在频道列表里显示出新输入的频道
    验证接收内容1、进行小区广播并开启 2、输入频道并保存 3、接收到一条小区广播信息1、接收的广播信息内容显示全面,无乱码,错误出现
    删除小区广播信息1、选择一条小区广播信息 2、进入选项-删除 3、确认删除1、准确地删除该条信息
    删除小区广播信息1、选择一条小区广播信息 2、进入选项-删除 3、放弃删除1、返回上级界面 2、小区信息无丢失现象
    在小区广播界面有来电、短消息、闹钟、新事件、低电警告、自动关机1、在小区广播功能的任何界面 2、有来电呼入、闹钟响闹、来新短消息、低电告警、自动关机时间到显示正常
    在小区广播界面按任意键1、在小区广播任何界面 2、按左软键、右软键、挂机键、数字键显示正常
    在小区广播界面不断插拨充电器(USB、电源)1、在小区广播界面不断插拨充电器(USB、电源)显示正常
    在小区广播界面不断插拨耳机1、在小区广播界面不断插拨耳机显示正常
    语音信箱
    语音信箱
    拨打信箱(号码为空)1、进入语音信箱功能 2、选择‘拨打信箱’1、提示号码为空
    号码设置1、进入语音信箱功能 2、选择‘号码设置’ 3、输入任意号码或号码与#*混合 4、确认保存1、准确输入号码 2、提示保存成功
    号码设置1、进入语音信箱功能 2、选择‘号码设置’ 3、输入任意号码或号码与#*混合 4、放弃保存1、准确输入号码 2、号码不保存并返回上一级
    号码设置1、进入语音信箱功能 2、选择‘号码设置’ 3、输入符号1、符号不被输入
    号码设置1、进入语音信箱功能 2、选择‘号码设置’(号码为空) 3、选择电话簿 4、按上下键选择电话号码 5、确认保存1、正确进入电话簿列表 2、在输入号码窗口显示出刚选择的电话号码 3、提示保存成功
    号码设置1、进入语音信箱功能 2、选择‘号码设置’(号码为空) 3、选择电话簿 4、按上下键选择电话号码(保存至手机里的多个号码) 5、确认保存1、正确进入电话簿列表 2、在输入号码窗口显示出刚选择的电话号码 3、提示保存成功
    号码修改(保存)1、进入语音信箱功能 2、选择‘号码设置’ 3、修改原有的号码 4、确认保存1、准确输入号码 2、提示保存成功
    号码修改(不保存)1、进入语音信箱功能 2、选择‘号码设置’ 3、修改原有的号码 4、放弃保存1、准确输入号码 2、号码不保存并返回上一级
    拨打信箱1、进入语音信箱功能 2、选择‘拨打信箱’1、准确拨号信箱里的号码 2、可以接通电话
    删除信箱1、进入语音信箱功能 2、选择删除 3、确认删除1、提示是否删除 2、提示删除成功
    验证删除1、进入语音信箱功能 2、选择删除 3、确认删除 4、进入号码设置1、提示是否删除 2、提示删除成功 3、号码设置显示空
    验证删除1、进入语音信箱功能 2、选择删除 3、确认删除 4、拨打信箱1、提示是否删除 2、提示删除成功 3、提示号码为空
    删除信箱1、进入语音信箱功能 2、选择删除 3、放弃删除1、提示是否删除 2、返回上一级,信箱号码保留
    验证删除1、进入语音信箱功能 2、选择删除 3、放弃删除 4、拨打信箱1、提示是否删除 2、正常拨号
    语音信箱的任何界面,有来电呼入、闹钟响闹、来新短消息、低电告警、自动关机时间到1、语音信箱的任何界面 2、有来电呼入、闹钟响闹、来新短消息、低电告警、自动关机时间到显示正常
    语音信箱任意界面插拨充电器、耳机1、语音信箱任意界面插拨充电器、耳机显示正常
    多媒体彩信
    书写彩信内容的测试
    MMS_001彩信不满时选择1、进入彩信功能 2、进入“写信息”;1、进入彩信新建界面正常。
    MMS_002彩信为满时选择新建1、彩信的草稿箱、已发信箱、收件箱和发件箱条数达到满; 2、进入彩信功能 3、进入“写信息”;1、弹出提示框;手机空间已满。
    插入1幅图片(10K以下)1、进入写彩信 2、插入图片(手机没有图片)1、显示手机内存和T卡内存里的所有文件夹
    插入1幅图片(10K以下)1、进入写彩信 2、插入图片(我的相册里保存有图片) 3、选择任意一张图片(JPG、GIF等格式)1、显示出我的相册里的图片列表 2、准确插入图片
    插入1幅图片(10K以下)1、进入写彩信 2、插入图片(我的相册里保存有图片) 3、按返回 4、在其它文件夹里查找图片(JPG、GIF等格式)1、显示出我的相册里的图片列表 2、显示手机所有的文件夹
    保存彩信(1幅10K以下图片)1、进入写彩信 2、插入图片(我的相册里保存有图片) 3、选择任意一张图片(JPG、GIF等格式) 4、保存1、显示出我的相册里的图片列表 2、准确插入图片 3、彩信保存到草稿箱
    发送彩信(1幅10K以下图片)1、进入写彩信 2、插入图片(我的相册里保存有图片) 3、选择任意一张图片(JPG、GIF等格式) 4、输入号码或从电话簿里查找号码 5、选择发送1、显示出我的相册里的图片列表 2、准确插入图片 3、彩信成功发送
    插入1首音乐(10K以下)1、进入写彩信 2、插入音乐(手机没有音乐)1、显示手机内存和T卡内存里的所有文件夹
    插入1首音乐(10K以下)1、进入写彩信 2、插入图片(我的音乐里保存有音乐) 3、选择任意一首音乐(MP3、MID等格式)1、显示出‘我的音乐’里的音乐列表 2、准确插入图片
    插入1首音乐(10K以下)1、进入写彩信 2、插入图片(我的音乐里保存有音乐) 3、按返回 4、在其它文件夹里查找音乐(MP3、MID等格式)1、显示出‘我的音乐’里的音乐列表 2、显示手机所有的文件夹
    保存彩信(1首10K以下音乐)1、进入写彩信 2、插入图片(我的音乐里保存有音乐) 3、选择任意一首音乐(MP3、MID等格式) 4、保存1、显示出‘我的音乐’里的音乐列表 2、准确插入音乐 3、彩信保存到草稿箱
    发送彩信(1首10K以下音乐)1、进入写彩信 2、插入图片(我的音乐里保存有音乐) 3、选择任意一首音乐(MP3、MID等格式) 4、输入号码或从电话簿里查找号码 5、选择发送1、显示出‘我的音乐’里的音乐列表 2、准确插入音乐 3、彩信成功发送
    输入纯文本(10K以下)1、进入写彩信 2、编辑文字 3、输入纯中文、英文、数字、符号或混合输入1、准确输入文本
    保存彩信(纯文本)1、进入写彩信 2、编辑文字 3、输入纯中文、英文、数字、符号或混合输入 4、保存1、准确输入文本 2、彩信保存到草稿箱
    发送彩信(纯文本)1、进入写彩信 2、编辑文字 3、输入纯中文、英文、数字、符号或混合输入 4、输入号码或从电话簿里查找号码 5、选择发送1、准确输入文本 2、彩信成功发送
    插入1幅图片(30K以下)1、进入写彩信 2、插入图片(手机没有图片)1、显示手机内存和T卡内存里的所有文件夹
    插入1幅图片(30K以下)1、进入写彩信 2、插入图片(我的相册里保存有图片) 3、选择任意一张图片(JPG、GIF等格式)1、显示出我的相册里的图片列表 2、准确插入图片
    插入1幅图片(30K以下)1、进入写彩信 2、插入图片(我的相册里保存有图片) 3、按返回 4、在其它文件夹里查找图片(JPG、GIF等格式)1、显示出我的相册里的图片列表 2、显示手机所有的文件夹
    保存彩信(1幅30K以下图片)1、进入写彩信 2、插入图片(我的相册里保存有图片) 3、选择任意一张图片(JPG、GIF等格式) 4、保存1、显示出我的相册里的图片列表 2、准确插入图片 3、彩信保存到草稿箱
    发送彩信(1幅30K以下图片)1、进入写彩信 2、插入图片(我的相册里保存有图片) 3、选择任意一张图片(JPG、GIF等格式) 4、输入号码或从电话簿里查找号码 5、选择发送1、显示出我的相册里的图片列表 2、准确插入图片 3、彩信成功发送
    插入1首音乐(30K以下)1、进入写彩信 2、插入音乐(手机没有音乐)1、显示手机内存和T卡内存里的所有文件夹
    插入1首音乐(30K以下)1、进入写彩信 2、插入图片(我的音乐里保存有音乐) 3、选择任意一首音乐(MP3、MID等格式)1、显示出‘我的音乐’里的音乐列表 2、准确插入图片
    插入1首音乐(30K以下)1、进入写彩信 2、插入图片(我的音乐里保存有音乐) 3、按返回 4、在其它文件夹里查找音乐(MP3、MID等格式)1、显示出‘我的音乐’里的音乐列表 2、显示手机所有的文件夹
    保存彩信(1首30K以下音乐)1、进入写彩信 2、插入图片(我的音乐里保存有音乐) 3、选择任意一首音乐(MP3、MID等格式) 4、保存1、显示出‘我的音乐’里的音乐列表 2、准确插入音乐 3、彩信保存到草稿箱
    发送彩信(1首30K以下音乐)1、进入写彩信 2、插入图片(我的音乐里保存有音乐) 3、选择任意一首音乐(MP3、MID等格式) 4、输入号码或从电话簿里查找号码 5、选择发送1、显示出‘我的音乐’里的音乐列表 2、准确插入音乐 3、彩信成功发送
    输入纯文本(全满)1、进入写彩信 2、编辑文字 3、输入纯中文、英文、数字、符号或混合输入1、准确输入文本
    保存彩信(纯全满文本)1、进入写彩信 2、编辑文字 3、输入纯中文、英文、数字、符号或混合输入 4、保存1、准确输入文本 2、彩信保存到草稿箱
    发送彩信(纯全满文本)1、进入写彩信 2、编辑文字 3、输入纯中文、英文、数字、符号或混合输入 4、输入号码或从电话簿里查找号码 5、选择发送1、准确输入文本 2、彩信成功发送
    插入1首音乐(50K以上)1、进入写彩信 2、插入音乐(手机没有音乐)1、显示手机内存和T卡内存里的所有文件夹
    插入1首音乐(50K以上)1、进入写彩信 2、插入图片(我的音乐里保存有音乐) 3、选择任意一首音乐(MP3、MID等格式)1、显示出‘我的音乐’里的音乐列表 2、准确插入图片
    插入1首音乐(50K以上)1、进入写彩信 2、插入图片(我的音乐里保存有音乐) 3、按返回 4、在其它文件夹里查找音乐(MP3、MID等格式)1、显示出‘我的音乐’里的音乐列表 2、显示手机所有的文件夹
    保存彩信(1首50K以上音乐)1、进入写彩信 2、插入图片(我的音乐里保存有音乐) 3、选择任意一首音乐(MP3、MID等格式) 4、保存1、显示出‘我的音乐’里的音乐列表 2、准确插入音乐 3、彩信保存到草稿箱
    发送彩信(1首50K以上音乐)1、进入写彩信 2、插入图片(我的音乐里保存有音乐) 3、选择任意一首音乐(MP3、MID等格式) 4、输入号码或从电话簿里查找号码 5、选择发送1、显示出‘我的音乐’里的音乐列表 2、准确插入音乐 3、彩信成功发送
    插入1幅图片(50K以上)1、进入写彩信 2、插入图片(我的相册里保存有图片) 3、选择任意一张图片(JPG、GIF等格式)1、显示出我的相册里的图片列表 2、准确插入图片
    插入1幅图片(50K以上)1、进入写彩信 2、插入图片(我的相册里保存有图片) 3、按返回 4、在其它文件夹里查找图片(JPG、GIF等格式)1、显示出我的相册里的图片列表 2、显示手机所有的文件夹
    保存彩信(1幅50K以上图片)1、进入写彩信 2、插入图片(我的相册里保存有图片) 3、选择任意一张图片(JPG、GIF等格式) 4、保存1、显示出我的相册里的图片列表 2、准确插入图片 3、彩信保存到草稿箱
    发送彩信(1幅50K以上图片)1、进入写彩信 2、插入图片(我的相册里保存有图片) 3、选择任意一张图片(JPG、GIF等格式) 4、输入号码或从电话簿里查找号码 5、选择发送1、显示出我的相册里的图片列表 2、准确插入图片 3、彩信成功发送
    输入主题1、进入写彩信 2、编辑标题 3、输入纯中文、英文、数字、符号或混合输入(全输满)1、准确输入
    输入主题1、进入写彩信 2、编辑标题 3、输入空内容并保存1、准确保存
    MMS_007彩信内容为满,收件人差几个到满时验证提示信息1、在收件人处差几条输入到满;选择收件人(选择手机号码和邮件各1次) 2 、插入一张图片和一个铃声;(重复新增幻灯片并插入图片或铃声),到系统提示:超出彩信大小限制;开始输入文字到满;返回到编辑界面。1、在选择超过差的几个收件人数时提示:已达到最大选择限制。 2、正常返回; 3、弹出提示框:超出彩信限制。
    MMS_008发送时的提示信息1、收件人号码为空; 2、选择发送。1、弹出提示框:无收件人。
    MMS_009发送时的提示信息1、收件人号码处输入错误的号码;(全部为数字、英文、字符、汉字) 2、选择发送。1、弹出提示框:正在发送彩信;1秒后提示框消失。(根据手机项目而定) 2、正常转入发件箱中。
    MMS_011正常发送彩信1、从电话簿中选择或输入1个收件人号码; 2、在主题编辑框中输入主题达到最大; 3、在内容编辑框输入各种字符(包括汉字、英文、符号和数字); 4、插入图片和声音文件各1个;然后选择发送。1、弹出提示框:正在发送彩信;1秒后提示框消失。 2、正常转入发件箱中。 3、正常发送到号码。
    MMS_012数据达到最大时发送彩信1、从电话簿中选择或输入1个收件人邮件; 2、在主题编辑框中输入主题达到最大; 3、插入图片和声音文件并在内容编辑框输入各种字符到满(包括汉字、英文、符号和数字);然后选择发送。1、弹出提示框:正在发送彩信;1秒后提示框消失。 2、正常转入发件箱中。 3、正常发送到邮件。
    MMS_013数据达到最大时发送彩信1、从电话簿中选择或输入1个收件人号码和邮件; 2、在主题编辑框中输入主题达到最大; 3、插入图片和声音文件并在内容编辑框输入各种字符到满(包括汉字、英文、符号和数字);然后选择发送。1、弹出提示框:正在发送彩信;1秒后提示框消失。 2、正常转入发件箱中。 3、正常发送到号码和邮件。
    MMS_014数据为空时发送彩信1、从电话簿中选择或输入1个收件人号码和邮件; 2、在主题编辑框中输入主题;(包括汉字、英文、符号和数字) 3、内容为空;然后选择发送。1、弹出提示框:正在发送彩信;1秒后提示框消失。 2、正常转入发件箱中。 3、正常发送到号码和邮件;系统正常。
    MMS_015内容为空预览彩信1、号码为空或只写1个邮件地址。 2、在主题编辑框中输入主题。 3、内容为空; 4、选择预览。1、预览界面显示为空。 2、预览界面的菜单中各项都为灰色不可操作。
    MMS_016输入主题和内容预览彩信1、输入1个号码或选择1个号码。 2、输入主题和内容;(包括汉字、英文、符号和数字) 3、选择预览。1、预览界面显示内容正确
    MMS_017插入新页1、输入主题和内容;(包括汉字、英文、符号和数字) ; 2、在第1页中插入图片;选择菜单中的新页,(重复插入新页,在插笔第3张和第5张新页中插入声音文件各1个;(新页中包括图片格式:gif、jpeg、bmp、wbmp;声音格式:mmf、midi、wav;) 3、选择预览。1、预览界面显示内容正确; 2、菜单中的各项均可激活; 3、选择播放多帧,幻灯片循环播放。(幻灯片中有声音文件时;声音文件播放完后再播放下一张幻灯片)(视手机项目而定) 4、在播放幻灯片过程中选择停止后再开始播放多帧;从止时的当前幻灯片开始播放。
    MMS_018插入新页达最大值1、输入主题和内容后,插入新页达最大值1、验证最大数跟系统规定的数相符。 2、达到最大数时,系统正常。
    MMS_019插入长文件名的图片和铃声预览彩信1、选择“插入”->“图片”和“铃声”。(幻灯片中包括图片格式:gif、jpeg、bmp、wbmp;声音格式:mmf、midi、wav;) 2、从邮件保存的最长文件名,wap下载的最长文件名,pc tools 传输的最长文件名;也要各测试一次。1、预览界面图片正常,声音正常。 2、幻灯片切换正常。
    MMS_020内容到满时预览彩信1、进入彩信的编辑界面; 2、插入一张大约30k的图片;然后插入1k左右的铃声;(重复新增new page,并在“new page”中插入1k的铃声),只到系统提示:超出彩信大小限制;开始输入文字到满;最后返回到编辑界面。 3、选择预览。1、预览界面上文字和彩信编辑界面中的文字相同。
    MMS_021在预览界面储存图片1、发送一条带图片的彩信;在发件箱中断开连接; 2、查看发送失败的彩信; 3、彩信的查看界面储存图片; 注:gif、bmp、wbmp、jpeg各测试一次;1、系统中无相同文件名;直接存储成功; 2、系统中有相同文件名;弹出询问框,请求换名存储; 3、输入新名字后确定;在系统中增加一个图片;(进入图片浏览器中查看是否有新增加的图片)
    MMS_022在预览界面储存图片1、在“图片”中图片列表数目达到最大; 2、发送一条带图片的彩信;在发件箱中断开连接; 3、查看发送失败的彩信; 4、彩信的查看界面储存图片;“图片名为abc”1、提示:手机空间不足。
    MMS_023在预览界面储存铃声1、发送一条带声音的彩信;在发件箱中断开连接; 2、查看发送失败的彩信; 3、在彩信的查看界面储存声音;1、系统中无相同文件名;直接存储成功; 2、系统中有相同文件名;弹出询问框,请求换名存储; 3、输入新名字后确定;在系统中增加一个声音文件;(进入铃声选择查看是否有新增加的声音文件)
    MMS_024在预览界面储存铃声1、在“铃声”中铃声数目达到最大; 2、发送一条带铃声的彩信;在发件箱中断开连接; 3、查看发送失败的彩信; 4、彩信的查看界面储存铃声;“铃声为abc”1、提示:手机空间不足。
    MMS_025有内容时查看信息详情1、输入号码或邮件; 2、输入主题和内容;(包括汉字、英文、符号和数字); 3、插入图片和声音文件各1个;幻灯片共增加10个;然后选择信息详情。1、查看信息内容每一项都正确。
    MMS_026彩信为空时查看信息详情1、进入新建彩信;彩信内容为空。 2、选择信息详情。1、查看信息内容每一项都正确。
    MMS_027彩信为满时查看信息详情1、输入号码或邮件; 2、输入主题和内容;(包括汉字、英文、符号和数字); 3、插入图片和声音文件并增加幻灯片到满;选择信息详情。1、查看信息内容每一项都正确。
    MMS_030插入长文件名的图片1、选择“插入”->“图片”。(有几张图片) 注:gif、bmp、wbmp、jpeg各测试一次; 2、从邮件保存的最长文件名,wap下载的最长文件名,pc tools 传输的最长文件名;也要各测试一次。1、插入图片正常,界面正常。
    MMS_033插入长文件名的铃声1、选择“插入”->“铃声”。(有几张声音文件)注:mmf、midi、wav各测试一次; 2、从邮件保存的最长文件名,wap下载的最长文件名,pc tools 传输的最长文件名;也要各测试一次。1、插入铃声正常,界面正常。
    MMS_034插入系统短语1、选择“插入”->“短语”。 2、插入系统预置的常用短语。1、进入常用短语界面;看到系统预置的常用短语; 2、该常用短语正常显示在彩信的编辑框。
    MMS_035插入用户新增短语1、新增一个常用短语 2、插入该常用短语;1、该常用短语正常显示在彩信的编辑框;
    MMS_036连续插入系统和新增的短语1、新增常用短语到满; 2、插入所有系统和新增常用短语;1、所有短语全部显示在编辑框正常;
    MMS_038内容为空排列1、彩信内容为空,查看菜单中的排列。1、排列为灰色且不可操作。
    MMS_039内容不为空排列1、彩信内容为几十个字符和一张图片,查看菜单中的排列。注:gif、bmp、wbmp、jpeg各测试一次;1、排列被激活;有两项子菜单。
    MMS_040彩信图文的排列:图片在前1、选择排列中的“图片置于最前” 注:gif、bmp、wbmp、jpeg各测试一次; 2、预览彩信内容1、在预览界面;图片在文字的前面。
    MMS_041彩信图文的排列:文字在前1、选择排列中的“文字置于最前” 注:gif、bmp、wbmp、jpeg各测试一次; 2、预览彩信内容1、在预览界面;文字在图片的前面。
    MMS_042删除1、彩信内容中不插入图片和铃声; 2、查看菜单中的删除;1、删除为灰色且不可操作。
    MMS_043删除图片1、在彩信中只插入一张图片; 2、查看菜单中的删除1、删除功能被激活;有两项子菜单;其中一项“图片”为激活状态。
    MMS_044删除图片1、选择删除功能中的“图片”1、彩信内容中的图片被删除;
    MMS_045删除声音文件1、在彩信中只插入一个声音文件; 2、查看菜单中的删除1、删除功能被激活;有两项子菜单;其中一项“删除”为激活状态。
    MMS_046删除声音文件1、选择删除功能中的“声音”1、彩信内容中的声音文件被删除;
    MMS_047删除图片和声音文件1、在彩信中插入一个图片和一个声音文件; 2、查看菜单中的删除1、删除功能被激活;有两项子菜单;“图片”和“声音”都为激活状态。
    MMS_048删除图片和声音文件1、选择删除功能中的“图片” 2、选择删除功能中的“声音”1、彩信内容中的图片被删除; 2、彩信内容中的声音被删除;
    MMS_049全部是文字存储彩信1、在彩信的编辑界面全部输入文字到满;(包括汉字、英文、符号和数字) 2、选择菜单中的存储。1、弹出提示框:存储成功 2、一秒钟后自动返回到彩信编辑界面。
    MMS_050内容是文字加图片存储彩信1、在彩信的编辑界面输入文字并插入图片;(包括汉字、英文、符号和数字) 2、选择菜单中的存储。1、弹出提示框:存储成功 2、一秒钟后自动返回到彩信编辑界面。
    MMS_051内容是文字加铃声存储彩信1、在彩信的编辑界面输入文字并插入铃声;(包括汉字、英文、符号和数字) 2、选择菜单中的存储。1、弹出提示框:存储成功 2、一秒钟后自动返回到彩信编辑界面。
    MMS_052内容是文字加图片铃声存储彩信1、在彩信的编辑界面输入文字并插入图片和铃声;(包括汉字、英文、符号和数字) 2、选择菜单中的存储。1、弹出提示框:存储成功 2、一秒钟后自动返回到彩信编辑界面。
    MMS_053内容到满时存储彩信1、在彩信的编辑界面增加多个幻灯片;每个幻灯片插入图片和铃声且文字输入到满;(包括汉字、英文、符号和数字) 2、选择菜单中的存储。1、弹出提示框:存储成功 2、一秒钟后自动返回到彩信编辑界面。
    MMS_054内容为空时存储彩信1、在彩信的编辑界面为空。 2、选择菜单中的存储。1、弹出提示框:存储成功 2、一秒钟后自动返回到彩信编辑界面。
    MMS_055存储彩信1、输入几个汉字; 2、选择退出。1、弹出询问框:是否存储当前编辑内容; 2、选择确定后编辑的彩信被存储。
    MMS_056上一页1、在彩信的新建编辑界面上方显示6/6,选择菜单中的“上一页”1、在彩信编辑界面的上方显示5/6
    MMS_057下一页1、在彩信的新建编辑界面上方显示4/6,选择菜单中的“下一页”1、在彩信编辑界面的上方显示5/6
    收件箱
    MMS_058进入收件箱1、选择“收件箱”; 2、按“确定”或OK;1、进入收件箱界面正常。
    MMS_059收件箱为空时查看菜单1、进入收件箱; 2、查看菜单1、菜单各项为灰;并且不可操作。
    收件箱满时显示相关图示提示1、收件箱满时 2、观察待机状态下图示1、显示彩信已满图标
    MMS_060在收件箱中断开正在接收的彩信1、在收件箱中选择1条正在接收的彩信,图标是正在接收的图标; 2、选择“断开连接”1、彩信前面的图标变为接收失败的图标; 2、菜单中的“阅读”“删除”和“删除所有”功能都被激活可操作。“断开连接”变灰;不可操作。
    MMS_061查看接收失败的彩信1、选择1条接收失败的彩信; 2、选择“阅读”进入彩信的信息界面;1、进入彩信的详细信息界面;查看界面上各项显示正确。
    MMS_062查看接收成功的彩信1、选择1条接收成功的彩信; 2、选择“阅读”进入彩信的信息界面; 3、选择“查看”进入彩信内容的预览界面。1、进入彩信的详细信息界面;查看界面上各项显示正确。
    MMS_063查看接收成功的彩信1、成功接收几条不同内容的彩信; 2、选择一条彩信后选择“阅读”进入彩信的信息界面; 3、选择“查看”进入彩信内容的预览界面。1、进入彩信的详细信息界面;查看界面上各项显示正确。 2、每条彩信都要查看内容,确认后接收成功的彩信内容没有替换掉先接收成功的两条彩信内容。
    MMS_064查看接收成功的彩信1、成功接收1条内容中文字达到最大的彩信; 2、选择该彩信,选择“阅读”进入彩信的信息界面; 3、选择“查看”进入彩信内容的预览界面。1、进入彩信的详细信息界面;查看界面上各项显示正确。 2、确定该条彩信中的文字没有乱码和缺行现象。
    MMS_065查看接收成功的彩信1、成功接收1条从记事本发送来的彩信。(记事本内容为最大) 2、选择该彩信,选择“阅读”进入彩信的信息界面; 3、选择“查看”进入彩信内容的预览界面。1、进入彩信的详细信息界面;查看界面上各项显示正确。 2、确定该条彩信中的文字没有乱码和缺行现象。
    MMS_066查看接收成功的彩信1、成功接收1条本系统不支持的字符的彩信;(包括收件人、彩信内容) 2、选择该彩信,选择“阅读”进入彩信的信息界面; 3、选择“查看”进入彩信内容的预览界面。1、系统正常。 2、进入彩信的详细信息界面;查看界面上各项显示正确。
    MMS_067在收件箱中重新接收彩信1、选择1条接收失败的彩信; 2、选择“阅读”进入彩信的信息界面; 3、选择“接收”1、弹出提示框:正在准备接收; 2、自动返回到收件箱主界面; 3、彩信前面的图标变为正在接收的图标。
    MMS_068在收件箱中转发彩信1、选择1条接收成功的彩信; 2、选择“阅读”进入彩信的信息界面; 3、选择“转发”1、自动转到彩信的编辑界面;编辑界面内容为转发的内容;主题中自动增加"FW:"标志 2、输入转发的收件人号码后;选择“发送”后自动返回到发件箱主界面;
    MMS_072在收件箱中删除接收失败彩信1、在彩信的收件箱中选择1条接收失败的彩信,在菜单中选择“删除”1、弹出询问框:询问是否确定删除? 2、选择确定后弹出提示:“删除成功”彩信被删除。 3、在收件箱的列表中接收失败的彩信总数共减少1条。
    MMS_073在收件箱中删除接收失败彩信1、在彩信的收件箱中选择1条接收失败的彩信; 2、选择“阅读”进入彩信的信息界面; 3、选择“删除”1、弹出询问框:询问是否确定删除? 2、选择确定后弹出提示:“删除成功”彩信被删除。 3、在收件箱的列表中接收失败的彩信总数共减少1条。
    MMS_074在收件箱中删除接收成功彩信1、在彩信的收件箱中选择1条接收成功的彩信,在菜单中选择“删除”1、弹出询问框:询问是否确定删除? 2、选择确定后弹出提示:“删除成功”彩信被删除。 3、在收件箱的列表中接收成功的彩信总数共1条。
    MMS_075在收件箱中删除接收成功彩信1、在彩信的收件箱中选择1条接收成功的彩信; 2、选择“阅读”进入彩信的信息界面; 3、选择“删除”1、弹出询问框:询问是否确定删除? 2、选择确定后弹出提示:“删除成功”彩信被删除。 3、在收件箱的列表中接收成功的彩信总数共减少1条。
    MMS_076在收件箱中删除正在接收的彩信1、在彩信的收件箱中选择1条正在接收的彩信; 2、选择“删除”1、弹出提示框:正在接收,不能删除
    MMS_077在收件箱中储存图片1、成功接收1条带图片的彩信; 2、选择“阅读”进入彩信的信息界面; 3、在信息界面选择“查看”进入彩信的查看界面。 4、在彩信的查看界面储存图片; 注:gif、bmp、wbmp、jpeg各测试一次;1、系统中无相同文件名;直接存储成功; 2、系统中有相同文件名;弹出询问框,请求换名存储; 3、输入新名字后确定;在系统中增加一个图片;(进入图片浏览器中查看是否有新增加的图片)
    MMS_078在收件箱中储存图片1、在“图片”中图片列表数目达到最大; 2、成功接收1条带图片的彩信; 3、选择“阅读”进入彩信的信息界面; 4、在信息界面选择“查看”进入彩信的查看界面。 5、在彩信的查看界面储存图片; 注:gif、bmp、wbmp、jpeg各测试一次;1、提示:手机空间不足。
    MMS_079在收件箱中储存声音1、成功接收1条带铃声的彩信; 2、选择“阅读”进入彩信的信息界面; 3、在信息界面选择“查看”进入彩信的查看界面。 4、在彩信的查看界面储存声音;1、系统中无相同文件名;直接存储成功; 2、系统中有相同文件名;弹出询问框,请求换名存储; 3、输入新名字后确定;在系统中增加一个声音文件;(进入铃声选择查看是否有新增加的声音文件)
    MMS_080在发件箱中储存声音1、在“铃声”中铃声数目达到最大; 2、成功接收1条带铃声的彩信; 3、选择“阅读”进入彩信的信息界面; 4、在信息界面选择“查看”进入彩信的查看界面。 5、在彩信的查看界面储存声音;1、提示:手机空间不足。
    MMS_081在收件箱中储存号码1、成功接收1条彩信; 2、选择“阅读”进入彩信的信息界面; 3、在信息界面选择“查看”进入彩信的查看界面。 4、在彩信的查看界面“储存号码”1、正常切换到Pb的编辑界面; 2、Pb中的号码和彩信中的号码相等。
    MMS_082在收件箱中播放多帧1、在收件箱中成功接收一条带图片和声音的彩信;(最少4帧,1和3帧都有声音,2和4帧有图片); 2、选择“阅读”进入彩信的信息界面; 3、在信息界面选择“查看”进入彩信的查看界面。 4、在彩信的查看界面选择播放多帧;1、四帧顺序播放; 2、在播放多帧过程中选择菜单;并等待系统自动播放完毕;菜单中的文字显示正确。在屏幕上方显示的当前帧数正确。
    MMS_083在收件箱中切换幻灯片1、在收件箱中成功接收一条带图片和声音的彩信;(最少4帧,1和3帧都有声音,2和4帧有图片); 2、选择“阅读”进入彩信的信息界面; 3、在信息界面选择“查看”进入彩信的查看界面。 4、在彩信的查看界面选择上一个和下一个;1、幻灯片切换正常; 2、切换上一个和下一个后在屏幕上方显示的当前帧数正确。
    MMS_084在收件箱中删除所有彩信1、在收件箱中有接收成功的彩信和未接收成功的彩信各几条。 2、选择“菜单”->"删除所有";1、进入选择删除项界面;选择“彩信” 后“确定” 2、进入“删除所有的动画”界面;删除完毕,弹出:删除成功提示框。 3、收件箱中彩信全部被清空。(包括接收成功和未接收成功的彩信)
    MMS_085接收成功后,图标转换正常1、正常接收一条彩信; 2、接收成功。1、该彩信的图标转换正确; 2、未读彩信图标正确,idle界面上的计数正确。
    MMS_086接收成功后,图标转换正常1、正常接收多条彩信; 2、依次接收成功。1、所有彩信的图标转换正确; 2、未读彩信图标正确,idle界面上的计数正确。
    发件箱
    MMS_087进入发件箱1、选择“发件箱”; 2、按“确定”或OK;1、进入发件箱界面正常。
    MMS_088发件箱为空时查看菜单1、进入发件箱; 2、查看菜单1、菜单各项为灰;并且不可操作。
    MMS_089发件箱中正在发送彩信1、在编辑界面,发送1条彩信(包括几十个汉字、1个图片和声音); 2、进入发件箱;1、发件箱中有正在发送的彩信,图标是正在发送的图标; 2、菜单中只有“断开连接”是激活状态。
    MMS_090在发件箱中断开正在发送的彩信1、发件箱中有正在发送的彩信,图标是正在发送的图标; 2、选择“断开连接”1、彩信前面的图标变为发送失败的图标; 2、菜单中的“阅读”“删除”和“删除所有”功能都被激活可操作。“断开连接”变灰;不可操作。
    MMS_091在发件箱正在发送彩信,进入无信号区域1、发件箱中有正在发送的彩信,图标是正在发送的图标; 2、进入无信号区域。1、彩信变为发送失败的彩信;彩信前面的图标变为发送失败的图标;
    MMS_092在发件箱正在发送彩;关机或拔电池1、发件箱中有正在发送的彩信,图标是正在发送的图标; 2、在电池电量极低的情况下;发送彩信;正在发送彩信时;系统自动关机、手动按power键关机或拔电池。(各测试一次)1、关机正常;开机后; 2、在发件箱中有发送失败的彩信。
    MMS_094在发件箱中储存图片1、发送一条带图片的彩信;选择发送并保存; 2、查看保存的彩信; 3、彩信的查看界面储存图片; 注:gif、bmp、wbmp、jpeg各测试一次;1、系统中无相同文件名;直接存储成功; 2、系统中有相同文件名;弹出询问框,请求换名存储; 3、输入新名字后确定;在系统中增加一个图片;(进入图片浏览器中查看是否有新增加的图片)
    MMS_095在发件箱中储存图片1、在“图片”中图片列表数目达到最大; 2、发送一条带图片的彩信;选择发送并保存; 3、查看保存的彩信; 4、彩信的查看界面储存图片;“图片名为abc”1、提示:手机空间不足。
    MMS_096在发件箱中储存声音1、发送一条带声音的彩信;选择发送并保存; 2、查看保存的彩信; 3、在彩信的查看界面储存声音;1、系统中无相同文件名;直接存储成功; 2、系统中有相同文件名;弹出询问框,请求换名存储; 3、输入新名字后确定;在系统中增加一个声音文件;(进入铃声选择查看是否有新增加的声音文件)
    MMS_097在发件箱中储存声音1、在“铃声”中铃声数目达到最大; 2、发送一条带铃声的彩信;选择发送并保存; 3、查看保存的彩信; 4、彩信的查看界面储存铃声;“铃声为abc”1、提示:手机空间不足。
    MMS_098在发件箱中播放多帧1、发送一条带图片和声音的彩信;(最少4帧,前2帧都有图片和声音)在发件箱中断开连接; 2、查看发送失败的彩信; 3、在彩信的查看界面选择播放多帧;1、四帧顺序播放; 2、在播放多帧过程中选择菜单;并等待系统自动播放完毕;菜单中的文字显示正确。在屏幕上方显示的当前帧数正确。
    MMS_099在发件箱中切换幻灯片1、发送一条带图片和声音的彩信;(最少4帧,前2帧都有图片和声音)选择发送并保存; 2、查看保存的彩信; 3、在彩信的查看界面选择上一个和下一个;1、幻灯片切换正常; 2、切换上一个和下一个后在屏幕上方显示的当前帧数正确。
    MMS_100在发件箱中重新发送彩信1、选择1条发送失败的彩信; 2、选择“阅读”进入彩信的信息界面; 3、选择“发送”1、弹出提示框:正在准备发送; 2、自动返回到发件箱主界面; 3、彩信前面的图标变为正在发送的图标。
    MMS_101在发件箱中转发彩信1、选择1条保存的彩信; 2、选择“阅读”进入彩信的信息界面; 3、选择“转发”1、自动转到彩信的编辑界面;编辑界面内容为转发的内容;主题中自动增加"FW:"标志 2、选择“发送”后自动返回到发件箱主界面; 3、发件箱中增加一条转发的彩信。
    MMS_102在发件箱中储存图片1、在“图片”中图片数目达到最大; 2、发送一条带图片的彩信;在发件箱中断开连接; 3、查看发送失败的彩信; 4、彩信的查看界面储存图片;1、提示:手机空间不足。
    草稿箱
    MMS_105进入草稿箱1、进入“草稿箱”; 2、选择“确定”或OK;1、进入草稿箱界面正常。
    MMS_106草稿箱的列表1、 在彩信的编辑界面输入收件人号码; 2、不输入主题; 3、 选择“存储” 4、进入草稿箱进行查看列表。1、草稿箱的列表上显示该彩信的主题:无主题。
    MMS_107草稿箱的列表1、 在彩信的编辑界面输入收件人号码; 2、输入主题;(包括汉字、英文、符号和数字) 3、在彩信的编辑界面插入1个图片并输入几十个汉字; 4、 选择“存储” 5、进入草稿箱进行查看列表。1、草稿箱的列表上显示彩信的主题正确:
    MMS_108草稿箱的列表数1、保存几条不同内容的彩信;(包括:图片、声音和各种文字) 2、选择菜单中的存储。 3、进入草稿箱中查看。1、草稿箱中彩信条数正确; 2、查看每一条草稿箱的彩信;验证每条彩信内容正确。
    MMS_109草稿箱的列表数1、彩信存储到最大条数。 2、进入草稿箱中查看。1、检查草稿箱中列表数目正确。
    MMS_110草稿箱中删除彩信1、在彩信的草稿箱中选择1条彩信; 2、选择“删除”1、弹出询问框:询问是否确定删除? 2、选择确定后弹出提示:“删除成功”彩信被删除。 3、在草稿箱的列表中彩信总数减少1条。
    MMS_111草稿箱中阅读彩信1、在彩信的编辑界面存储一条没有号码的彩信。 2、进入草稿箱后选择该彩信; 3、选择“阅读”;1、自动转到彩信的编辑界面;收件人处号码为空。
    MMS_112草稿箱中阅读彩信1、在彩信的编辑界面存储一条号码为A的彩信。 2、进入草稿箱后选择该彩信; 3、选择“阅读”;1、自动转到彩信的编辑界面;收件人处显示的发件人号码是A; 2、选择“发送”后自动返回到草稿箱主界面;
    MMS_113草稿箱中有多条彩信删除所有1、在草稿箱中有多条彩信。 2、选择“菜单”->"删除所有";1、进入选择删除项界面;选择“彩信” 后“确定” 2、进入“删除所有”的动画界面;删除完毕,弹出:删除成功提示框。 3、收件箱中彩信全部被清空。
    MMS_114草稿箱中删除所有1、在草稿箱存满彩信。 2、选择“菜单”->"删除所有";1、进入选择删除项界面;选择“彩信” 后“确定” 2、进入“删除所有”的动画界面;删除完毕,弹出:删除成功提示框。 3、收件箱中彩信全部被清空。
    彩信功能操作测试
    删除功能测试1、删除功能测试;选择需删除对象后,应又相应的提示语,以防止用户误操作
    放弃删除放弃删除;应返回到上级菜单,彩信无丢失现象;
    确定删除确定删除;选中的对象应准确、快速被删除
    回复功能测试1、选择一条彩信阅读后进行回复;在输入内容时,添加图片、声音、文字 2、编辑完成后发送1、输入内容正常 2、发送成功
    转发功能测试1、选择一条彩信阅读后 2、进行转发 3、输入对方号码1、准确发送
    转发功能测试1、选择一条彩信阅读后 2、进行转发 3、从电话本中输入对方号码1、准确发送
    转发功能测试1、选择一条彩信阅读后 2、进行转发 3、连续发给多个不同的号码1、准确发送
    查看详细资料1、选择任何一条彩信查看详细资料1、显示正确
    4、在彩信功能操作的任何界面,有来电呼入、闹钟响闹、来新短消息、低电告警、自动关机时间到、小区广播到,显示是否正常;
    彩信设置
    MMS_127进入MMS设置1、选择"MMS设置"。1.进入设置界面:连接列表、匿名发送、发送确定、发送保存、自动接受、设为默认。
    MMS_128进入网络设置1、选择"连接列表"或焦点处于"连接列表"点击"确定"或ok1、进入连接选项界面。
    MMS_131网关IP正确1、网关IP设置为"10、0、0、172"并且MMS接收处于"接受"状态1、成功发送和接收彩信
    MMS_132网关IP错误1、网关IP设置为"22、22、22、22"等错误的网关地址1. 会提示无效IP
    MMS_133设置错误的网关或MMSCURL1、网关IP设置的编辑框;输入11(任意字符)后完成;在高级设置界面点击"确定"。 2、点击网关IP设置的编辑框;不输入任何字符完成;在网络设置界面点击"确定"1、提示:地址格式不对,请重新输入。
    MMS_134MMSCUR为空1、点击MMSCURL下面的编辑框,不输入任何字符; 2、完成后在网络设置界面点击"确定"1、可以直接保存成功
    MMS_135MMSCUR输入错误1、点击MMSCURL下面的编辑框,输入任何字符(不加"http://"字符;) 2、完成后在网络设置界面点击"确定"。1、提示:地址格式不对,请重新输入。
    端口号正确1、端口号设置为"9201"并保存提示保存成功
    端口号错误1、端口号设置为"0000000000"等错误字符并保存提示无效端口号
    开启送达报告1、开启送达报告 2、成功发送彩信 3、对方成功接收彩信1、本方接收送达报告
    关闭送达报告1、开启送达报告 2、成功发送彩信 3、对方成功接收彩信1、本方不接收送达报告
    发送阅读报告1、开启发送阅读报告 2、接收到新彩信 3、查看阅读新彩信1、阅读新彩信后对方就接收到阅读报告
    匿名发送(开启)1、开启匿名发送 2、成功发送一条彩信 3、对方接收到这条新彩信1、接收的彩信不包含你的信息,收件人看不出该彩信是谁发送的
    匿名发送(关闭)1、关闭匿名发送 2、成功发送一条彩信 3、对方接收到这条新彩信1、接收到彩信将包含你的个人信息
    MMS_139发送确认和不确认1、设置发送确认或不确认(各设一次);自己给自己发送1条彩信。1、设发送确认在条彩信接收的时候同时会有一个接收回执报告, 2、设不确认彩信接收无接收回执。
    发送保存1、点击不保存按确认,1、发送后发件箱无保存的彩信
    发送保存1、点击保存按确认(自己给自己发送)1、发送后发件箱有已发的彩信保存记录
    MMS_142自动接收1、点击自动接收按确认,1、在收到彩信后自动进行下载
    MMS_142自动接收1、点击手动接收按确认(自己给自己发送)1、在收到彩信后需要手动选择菜单中的下载才能下载信息
    自动签名(开启)1、开启自动签名 2、成功发送彩信 3、对方接收到彩信1、在对方接收的彩信内容里自动添加设置的签名
    自动签名(闭关)1、关闭自动签名 2、成功发送彩信 3、对方接收到彩信1、在对方接收的彩信内容里没有显示设置的签名
    编辑自动签名1、编辑自动签名 2、输入文本、图片、声音正确无误
    恢复默认值1、选择恢复默认值各设置都恢复到出厂值
    中国移动参数1、设置以下参数: A、连接名称:中国移动彩信(GPRS); B、数据承载方式:GPRS; C、接入点名称:cmwap; D、鉴定:普通; E、网关IP地址:10.0.0.172; F、MMSC URL地址:http://mmsc.monternet.com; G、连接安全:关; H、连接类型:永久; 对上述项目进行编辑,删除,修改等操作,观察有无异常;
    有效值1、对发送的彩信有效期进行不同选择的测试,分别选择1小时、1天、1星期、1月等有效期准确无误
    在参数设置的任何界面,有来电呼入、闹钟响闹、来新短消息、低电告警、自动关机时间到1、在参数设置的任何界面,有来电呼入、闹钟响闹、来新短消息、低电告警、自动关机时间到、小区广播到
    菜单功能交叉测试:
    MMS_155记事本中发送彩信1、在记事本选择一条记录; 2、点击‘发送’中的 ‘彩信’选项(记事本文件中的文字内容达到最大)1、进入到彩信的写信息的界面中,且彩信内容为该“记事本”中的内容。 2、发送正常。
    MMS_156记事本中发送彩信1、记事本中发送到彩信; 2、彩信接受成功后浏览彩信; (记事本文件中的文字内容达到最大)1、彩信中的文本内容正常。
    MMS_157我的文档->“图片”中发送彩信1、在图片浏览器的主界面,点击“菜单”中的“发送”->“彩信”;(大、中、小图片各测试1次)(有版权的DRM格式的图片无法发送)1、进入写彩信界面;彩信内容为该图片。
    MMS_158我的文档->“声音”中发送彩信1、在“铃声列表”界面选择一个系统铃声,点击“菜单”中的“发送”- >“彩信”(有版权的DRM格式的铃声无法发送)1、彩信内容为该系统铃声
    MMS_159设置->铃声列表中发送彩信1、在“铃声列表”界面选择一个新增加的铃声;(有版权的DRM格式的铃声无法发送) 2、点击“菜单”中的“发送”- >“彩信”1、彩信内容为选择的铃声
    MMS_160从拍照界面发送彩信1、进入拍照界面;拍摄一张照片; 2、选择菜单中的“发送”->“彩信”1、进入彩信的编辑界面,界面上显示的照片正确。
    MMS_161正常查看系统支持的所有格式的图片和铃声1、收到的彩信中含有系统支持的所有格式的图片和铃声; 2、点“菜单”中“查看”。1、彩信中的图片和铃声正常。
    MMS_162正常查看系统不支持的所有格式的图片和铃声1、收到的彩信中含有系统不支持的所有格式的图片和铃声; 2、点“菜单”中“查看”。提示:格式不支持等(视手机而定)
    MMS_163接收网站上发送的彩信1、从网站上发送1条彩信;(内容包括图片、声音或系统不支持的特殊字符)1、能够成功接收网站上发送成功的彩信。 注:如没有收到彩信,也应该有短信提示有未接收成功的彩信。
    MMS_164重复接收网站上发送的彩信1、从网站上发送多条彩信;(内容包括图片、声音或系统不支持的特殊字符) 2、在收件箱依次查看接收成功的彩信。1、内容显示正常; 2、系统正常;不会重起或死机。
    MMS_165在收件箱中有多种状态时,成功接收新彩信1、进入彩信->收件箱(有已读、未读、正在接受等状态), 2、有一条新彩信到达,不读彩信而直接退出;返回idle。显示1条新彩信
    MMS_166阅读彩信时成功接收一条新彩信1、阅读彩信时有1条新彩信到,又来1条新彩信。不读彩信而直接退出后,点击未读信息图标。显示1条新彩信
    MMS_167阅读彩信时新事件到达1、先设置一个日程提醒; 2、进入彩信的收件箱;预览彩信;此时日程提醒到。正常显示日程提醒的界面并且系统正常。
    MMS_168在彩信的编辑界面插入保存后的图片1、彩信的预览界面保存一张图片; 2、退出彩信后重新进入写彩信,选择菜单中的插入图片;选择刚才保存的图片名。图片显示正常;图片插入正常。
    MMS_169在彩信的编辑界面插入保存后的铃声1、彩信的预览界面保存一张铃声; 2、退出彩信后重新进入写彩信,选择菜单中的插入铃声;选择刚才保存的铃声。铃声图标正常;铃声插入正常。
    MMS_170图片或铃声文件达到最大1、从邮件、wap、彩信上存储一个图片和铃声;存储时文件名输入到最大(全部是数字、英文、字符、汉字); 2、自己给自己发送图片或铃声文件名到最长的彩信;接收成功后再次保存该文件名。1、验证系统正常、界面正常;
    MMS_171在通话中成功接收彩信1、建立一个呼叫;在通话中,成功接收一条彩信。1、在title显示未读彩信的图标,只有提示音表示收到彩信,不会播放彩信到达的铃声; 2、进入收件箱,确认新彩信不会丢失。
    MMS_172阅读彩信时,闹铃响1、阅读带铃声和图片的彩信时有1个闹钟到达。1、闹钟正常,彩信中的铃声停止。
    MMS_173在闹铃或日程提醒到达时,有彩信到达1、在闹钟或日程提醒正在提醒时;成功接收1条彩信;1、在title显示未读彩信的图标,只有提示音表示收到彩信,不会播放彩信到达的铃声; 2、进入收件箱,确认新彩信不会丢失。
    MMS_174在拍照界面,保存照片时,有新彩信到达1、拍摄1张照片,并保存,正在保存时,有一条新彩信到达;1、在IDLE界面上,显示1条新彩信;并有新彩信图标; 2、进入收件箱,确认新彩信不会丢失。
    MMS_175编辑彩信界面1、在编辑彩信界面,选择手机或邮件,在选择界面,选择到最多,系统提示:已达到最大可选值;然后确定。1、系统正常,在收件人界面,显示最大个数的电话号码或邮件地址。
    MMS_176编辑彩信界面1、在编辑彩信界面,收件人处联系人输入到最大;然后进入手机号码或邮件地址在进行选择。1、选择第一个联系人时就提示:已达到最大可选值
    MMS_177草稿箱为满,新建1、在草稿箱的列表中显示规定的最大数 2、选择新建彩信;1、不允许进入新建彩信,进入时提示:彩信空间不足,请删除。 2、验证title上的彩信满的图标正确。
    MMS_178已发信箱已满时,新建1、在已发信箱中彩信列表达到最大数; 2、选择新建彩信;1、进入彩信的编辑界面时提示:彩信空间不足,请删除。 2、验证title上的图标正确。
    MMS_179收件箱彩信列表为满时1、在收件箱中彩信列表达到最大数时,用别的测试机发给本测试机一条彩信;1、本测试机无法接收。列表中也不会显示“正在接收彩信”或“接收失败”的彩信。 2、验证title上的图标正确。
    MMS_180彩信在每个模块都存在1、在收件箱中有几条彩信;已发信箱有几条彩信;正在发送信箱有几十条发送失败的彩信;在草稿箱中存储彩信到最大数。 2、选择新建彩信。1、进入彩信的编辑界面时提示:彩信空间不足,请删除。 2、验证title上的图标正确。
    MMS_181收到错误的图片文件预览1、发送给自己一条图片文件损坏的图片; 2、成功接收该图片彩信。 3、进入彩信的预览状态。1、系统正常, 2、弹出提示:文件格式错误。
    MMS_182收到错误的铃声文件预览1、发送给自己一条铃声文件损坏的铃声; 2、成功接收该铃声彩信。 3、进入彩信的预览状态。1、系统正常, 2、弹出提示:文件格式错误。
    MMS_183在各个信箱为满时,进入;验证刷新时间1、草稿箱为满、收件箱为满、发件箱中发送失败的彩信条数为满、已发信息为满。 2、进入各个信箱。1、进入各个信箱正常;如刷新时间较长,出现提示:请稍后。 2、不会长时间停止在请稍后界面。(超过系统规定的刷新时间为不正常;时间根据项目而定)
    MMS_184收到别的手机发送的彩信1、用别的知名品牌的手机给本测试机发送彩信;(各种图片和声音文件各测试一次) 2、本测试机成功接收。 3、进入浏览1、系统可以正常浏览; 2、系统不会重启或死机。
    MMS_185用不同SIM卡发送和接收彩信1、测试机用不同的SIM卡发送彩信;(各种图片和声音文件各测试一次) 2、测试机接收不同的SIM卡发送过来的彩信。(各种图片和声音文件各测试一次) 注:SIM卡包括:全球通、移动梦网、一卡双号、动感地带和公司能够提供的外地当地全球通卡。(各种卡又包括16k、32k和64k的SIM卡)1、测试机用不同的SIM卡可以正常发送和接收; 2、系统不会重启或死机。
    MMS_186已发信息、收件箱、发件箱和草稿箱删除所有时来电1、进入已发信息、收件箱、发件箱或草稿箱; 2、选择删除所有;删除所有时,来电。1、来电界面正常;提示模式正常(铃声和振动) 2、不影响删除操作;系统正常。
    MMS_187已发信息、收件箱、发件箱和草稿箱删除所有时来闹铃1、进入已发信息、收件箱、发件箱或草稿箱; 2、选择删除所有;删除所有时,来闹铃。1、闹铃界面正常;提示模式正常(铃声和振动) 2、不影响删除操作;系统正常。
    MMS_188已发信息、收件箱、发件箱和草稿箱删除所有时有日程提醒到1、进入已发信息、收件箱、发件箱或草稿箱; 2、选择删除所有;删除所有时,来日程提醒。1、日程提界面正常;提示模式正常(铃声和振动) 2、不影响删除操作;系统正常。
    MMS_189已发信息、收件箱、发件箱和草稿箱删除所有时关机1、已发信息、收件箱、发件箱和草稿箱的彩信为满。 2、选择“菜单”->"删除所有"; 3、正在删除时,没电关机或按关机键关机1、没电自动关机或按关机键关机后正常弹出提示框:提示关机信息。(视手机而定) 2、删除操作被中断。验证在已发信息、收件箱、发件箱和草稿箱的彩信不为满或为空。
    MMS_190在自动浏览幻灯片时,有电话呼入。1、在编辑信息增加几张幻灯片;选择自动浏览; (幻灯片中包括图片格式:gif、jpeg、bmp、wbmp;声音格式:mmf、midi、wav;) 2、选择菜单中的“自动浏览”; 3、用固定电话或手机拨打测试机;1、来电界面正常; 2、对方挂断或测试机主动拒绝;返回到幻灯片的查看界面。 3、自动浏览不停止。(幻灯片中有铃声正在播放时,铃声停止)
    MMS_191在自动浏览幻灯片时,短信或彩信到达。1、在编辑信息增加几张幻灯片;选择自动浏览; (幻灯片中包括图片格式:gif、jpeg、bmp、wbmp;声音格式:mmf、midi、wav;) 2、选择菜单中的“自动浏览”; 3、用网上或手机给测试机成功发送一条短信和彩信;1、自动浏览不停止; 2、有接收成功的提示音; 3、返回到查看界面验证,在title显示短信或彩信的图标。 (幻灯片中有铃声正在播放时,铃声停止)
    MMS_192在自动浏览幻灯片时,日程提醒到达。1、在编辑信息增加几张幻灯片;选择自动浏览; (幻灯片中包括图片格式:gif、jpeg、bmp、wbmp;声音格式:mmf、midi、wav;) 2、选择菜单中的“自动浏览”; 3、日程提醒到达;1、日程提醒的铃声正常,界面显示正常。 2、自动浏览不停止; 3、 幻灯片中有铃声正在播放时,铃声停止
    MMS_193在自动浏览幻灯片时,闹铃到达。1、在编辑信息增加几张幻灯片;选择自动浏览; (幻灯片中包括图片格式:gif、jpeg、bmp、wbmp;声音格式:mmf、midi、wav;) 2、选择菜单中的“自动浏览”; 3、闹铃到达;1、闹铃的铃声正常,界面显示正常。 2、自动浏览不停止; 3、退出日程界面后,返回到该图片的查看界面。
    MMS_194在自动浏览幻灯片时合盖。1、在编辑信息增加几张幻灯片;选择自动浏览; (幻灯片中包括图片格式:gif、jpeg、bmp、wbmp;声音格式:mmf、midi、wav;) 2、选择菜单中的“自动浏览”; 3、在自动浏览时,合盖。1、翻盖验证,自动浏览不停止;
    MMS_195在任何彩信列表界面,在屏幕的文件上快速滑动,有电话呼入1、进入草稿箱、收件箱、发件箱或已发信息的列表界面;(各测试一次) 2、选择一个联系人;用触摸笔在联系人中快速上下滑动。(点一下焦点不在的联系人,不抬笔向上下滑动) 3、快速滑动滚动条时,有电话呼入。1、屏幕上显示的联系人相应的发生变化; 2、焦点随着触摸笔的滚动发生变化。 3、来电界面显示正常;
    MMS_196在任何彩信列表界面,在屏幕的文件上快速滑动,有日程提醒1、进入草稿箱、收件箱、发件箱或已发信息的列表界面;(各测试一次) 2、选择一个联系人;用触摸笔在联系人中快速上下滑动。(点一下焦点不在的联系人,不抬笔向上下滑动) 3、快速滑动滚动条时,日程提醒到达。1、屏幕上显示的图片文件相应的发生变化; 2、焦点随着触摸笔的滚动发生变化。 3、日程提醒界面显示正常;
    MMS_197在任何彩信列表界面,在屏幕的文件上快速滑动,有闹钟1、进入草稿箱、收件箱、发件箱或已发信息的列表界面;(各测试一次) 2、选择一个联系人;用触摸笔在联系人中快速上下滑动。(点一下焦点不在的联系人,不抬笔向上下滑动) 3、快速滑动滚动条时,闹钟闹响。1、屏幕上显示的图片文件相应的发生变化; 2、焦点随着触摸笔的滚动发生变化。 3、闹钟闹响界面显示正常;
    MMS_198按键或触屏选择1、在各个窗口,点屏进入或按方向键移动焦点到按键后;按"确定"或OK键。 2、在各个菜单,点屏进入或按方向键移动焦点到菜单项后;按"确定"或OK键。1、功能正确;窗口显示正确。
    MMS_199在文件超屏后,侧键和方向键的验证1、草稿箱、收件箱、发件箱或已发信息的列表中的文件超过一屏。 2、按侧键和左、右方向键翻屏;上、下键移动焦点。1、翻屏后焦点位置正确;焦点移动正常。
    MMS_200存储信息中的空间验证1、从收件箱、发件箱、已发信息、草稿箱增加或删除一些彩信 2、进入存储信息1、MMS个数和占用空间正确。 2、验证总的剩余空间数变化正确。
    MMS_201存储信息中的空间验证1、在存储信息中的总剩余空间数等于或小于最低值时; 2、在收件箱中重新接收,接受失败的彩信; 3、阅读彩信完毕并发送回执; 4、选择新建彩信 5、在发件箱中选择发送失败的彩信,重新发送。 6、在草稿箱中编辑彩信。1、提示:手机空间不足。
    MMS_202存储信息中的空间验证1、在存储信息中的总剩余空间数等于或小于最低值 2、从收件箱、发件箱、已发信息、草稿箱删除一些彩信;(或者是影响剩余空间的图片、声音或邮件) 3、在收件箱中重新接收,接受失败的彩信; 4、阅读彩信完毕并发送回执; 5、选择新建彩信; 6、在发件箱中选择发送失败的彩信,重新发送。 7、在草稿箱中编辑彩信。1、不会提示:手机空间不足。 2、可以正常执行一系列操作。(验证删除后空间释放正确)
    MMS_203与pc tools 同时接收数据的验证1、用pc tools 传送图片、声音或电话记录; 2、同时接收彩信。1、传输正常,接收彩信正常。 2、彩信空间不足时,则无法接收成功彩信,不会重启或死机。
    MMS_204短信已满时接收彩信1、短信存储到满,包括SIM卡和手机。 2、用手机或网站发送一条彩信到测试机。测试机无法接收彩信;
    MMS_205图片或铃声文件达到最大1、从邮件、wap、彩信上存储一个图片和铃声;存储时文件名输入到最大(全部是数字、英文、字符、汉字); 2、自己给自己发送图片或铃声文件名到最长的彩信;接收成功后再次保存该文件名。1、验证系统正常、界面正常;
    MMS_206在各种情况下接收发送彩信1、正常发送并同时接收几条彩信; (合盖、开盖和开盖睡眠各测试一次)1、接收成功后彩信的图标转换正确; 2、未读彩信图标正确,idle界面上的计数正确。 3、发送正常。
    MMS_207在PB中的交叉测试1、PB增加100条记录; 2、收发彩信各20条; 3、邮件收发各20条; 4、上wap网,正常连接20次。 5、再次收发彩信各几次。验证在PB中彩信收发正常。
    MMS_208验证彩信的接收和发送的成功率1、测试机和对比机同时发送彩信20条; (最好为motorola) 2、发送接收彩信完毕,测试机和对比机同时上网20次后,再次收发彩信20次。注:彩信内容必须有图片和铃声。1、验证彩信收发的成功率; 2、验证上网后再次收发彩信的成功率;两次的差别大小
    MMS_209彩信接收超过系统规定的最大帧数的彩信1、从网站上发送一条超过系统规定的最大帧数的彩信。 2、接收后预览彩信;每一帧都预览完毕。 3、转发这条彩信。1、系统不会重启或死机。 2、转发彩信正常或不允许;(视手机项目而定。)
    MMS_210在wap上网、邮件发送和接收同时接收彩信。1、在通话中、wap上网、邮件发送或接收;同时接收正常的彩信。1、验证彩信正在接收正常并能接收成功。
    MMS_212在彩信任何的界面1、进入彩信的任何界面; 2、按红键;1、返回到idle界面。
    MMS_213英文状态下显示1、在英文状态下,验证各窗口,菜单项的显示;1、英文单词显示正确; 2、单词的表达正确。 3、英文缩写;表达含义明确。
    MMS_214在中、英文状态下,点屏或按键进入界面或选择菜单1、切换成中、英文状态, 2、点屏或按键进入某一个界面或选择菜单;1、两种方式进入界面和选择菜单正确。

    转载于:https://www.cnblogs.com/LOVEYU/p/8461557.html

    展开全文
  • iOS本地通知的简单封装(定时提醒、重复提醒)iOS10及以上注册通知创建通知添加通知重复提醒取消通知iOS10以下创建通知重复提醒取消通知 实现快捷创建简单的定时提醒推送功能。 iOS10及以上 注册通知 iOS10及...


    实现快捷创建简单的定时重复提醒推送功能。

    主要实现原理

    iOS10及以上

    1.获取通知权限

    iOS10及以上要先请求通知权限

    UNUserNotificationCenter * center = [UNUserNotificationCenter currentNotificationCenter];
        //请求获取通知权限(角标,声音,弹框)
        [center requestAuthorizationWithOptions:(UNAuthorizationOptionBadge |
                                                 UNAuthorizationOptionSound |
                                                 UNAuthorizationOptionAlert)
                              completionHandler:^(BOOL granted, NSError * _Nullable error) {
            if (granted) {
                //获取用户是否同意开启通知
                NSLog(@"开启通知成功!");
    
            }
        }];
        
    

    2.创建通知

    UNMutableNotificationContent *content = [[UNMutableNotificationContent alloc] init];
        content.title = attribute[ZBNotificationAlertTitle];
    //    content.subtitle = @"本地通知副标题";
        content.body = @"body";
        //角标数量
        content.badge = @1;
        content.userInfo = userInfo;
    
    	//设置通知声音
        UNNotificationSound *sound = [UNNotificationSound defaultSound];
        content.sound = sound;
        
    

    创建 UNNotificationRequest :

    //设置时间容器:传人date中所有时间元素放入时间容器
    NSDateComponents * components = [[NSCalendar currentCalendar]
                                         components:NSCalendarUnitYear |
                                         NSCalendarUnitMonth |
                                         NSCalendarUnitWeekday |
                                         NSCalendarUnitDay |
                                         NSCalendarUnitHour |
                                         NSCalendarUnitMinute |
                                         NSCalendarUnitSecond
                                         fromDate:date];
    //设置UNCalendarNotificationTrigger
    //repeats: 设置是否重复
    UNCalendarNotificationTrigger * trigger = [UNCalendarNotificationTrigger 
    											triggerWithDateMatchingComponents:components 
    											repeats:repeat];
    //设置UNNotificationRequest
    //identifer:设置通知标识符或者说通知名字
    UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:identifer content:content trigger:trigger];
    
    

    3.添加通知

    //把通知加到UNUserNotificationCenter, 到指定触发点会被触发
    [[UNUserNotificationCenter currentNotificationCenter] addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) {
        if (error) {
            NSLog(@"通知添加失败:%@",error);
        } else {
            NSLog(@"通知添加成功");
        }
    }];
    
    

    4.重复提醒

    如果repeats为YES时为重复提醒
    约定在特定时间提醒时我们用时间容器来实现

    NSDateComponents * components = [[NSCalendar currentCalendar]
                                         components:NSCalendarUnitYear |
                                         NSCalendarUnitMonth |
                                         NSCalendarUnitWeekday |
                                         NSCalendarUnitDay |
                                         NSCalendarUnitHour |
                                         NSCalendarUnitMinute |
                                         NSCalendarUnitSecond
                                         fromDate:date];
                                         
    

    比如设置一个每天都提醒的推送,传入的时间设置为:

    NSDateFormatter * formatter = [[NSDateFormatter alloc]init];
    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSDate * date = [formatter dateFromString:@"2019-01-01 08:00:00"];
    
    

    每天8点 进行推送提醒的 时间容器 为:

    NSDateComponents * components = [[NSCalendar currentCalendar]
                                         components:NSCalendarUnitHour |
                                         			NSCalendarUnitMinute |
                                         			NSCalendarUnitSecond
                                         fromDate:date];
                                         
    

    每周二8点 (19年1月1号为周二) 进行推送提醒的 时间容器 为:

    NSDateComponents * components = [[NSCalendar currentCalendar]
                                         components:NSCalendarUnitWeekday |
                                         NSCalendarUnitHour |
                                         NSCalendarUnitMinute |
                                         NSCalendarUnitSecond
                                         fromDate:date];
                                         
    

    每月1号8点 进行推送提醒的 时间容器 为:

    NSDateComponents * components = [[NSCalendar currentCalendar]
                                         components:NSCalendarUnitDay |
                                         NSCalendarUnitHour |
                                         NSCalendarUnitMinute |
                                         NSCalendarUnitSecond
                                         fromDate:date];
                                         
    

    每年1月1号8点 进行推送提醒的 时间容器 为:

    NSDateComponents * components = [[NSCalendar currentCalendar]
                                         components:NSCalendarUnitMonth |
                                         NSCalendarUnitDay |
                                         NSCalendarUnitHour |
                                         NSCalendarUnitMinute |
                                         NSCalendarUnitSecond
                                         fromDate:date];
                                         
    

    以此类推…
    如果有需求是要 周一到周五的每天8点 提醒时,我的做法是用for循环创建5个通知:

    //因为周日是一星期第一天,1代表周日,所以周一从2开始
    for (NSInteger i = 2; i <= 6; i++) {
    //这里时间容器创建和以上每周提醒的一样,省略。
            components.weekday = i;
            
    //然后用这个components去添加通知就可以实现重复通知了
    }
    
    

    5.取消通知

    //找到要取消的通知名字
    NSMutableArray * names = [[NSMutableArray alloc]initWithObjects:notificationName, nil];
    //批量取消这些通知
    [[UNUserNotificationCenter currentNotificationCenter] removePendingNotificationRequestsWithIdentifiers:names];
    
    

    iOS10以下

    1.创建通知

    UILocalNotification *localNotification = [[UILocalNotification alloc]init];
        
        // 设置触发时间
        localNotification.fireDate = date;
        // 设置时区  以当前手机运行的时区为准
        localNotification.timeZone = [NSTimeZone localTimeZone];
        // 设置推送 显示的内容
        localNotification.alertTitle = @"title";
        localNotification.alertBody = @"body";
        // 设置 角标
        localNotification.applicationIconBadgeNumber = 1;
        // 不设置此属性,则默认不重复
        localNotification.repeatInterval =  repeatInterval;
        
        // 设置推送的声音
        localNotification.soundName =  UILocalNotificationDefaultSoundName;
        
        
        localNotification.userInfo = userInfo;
     	//添加到通知
        [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
        
    

    2.重复提醒

    重复提醒通过设置 repeatInterval 就可以

    valueeffect
    NSCalendarUnitDay每天
    NSCalendarUnitWeekday每周
    NSCalendarUnitMonth每月
    NSCalendarUnitYear每年

    等等…
    同样如果有需求是周一到周五某时提醒也用循环创建五个通知

    for (NSInteger i = 2; i <= 6; i++) {
    //同样用NSDateComponents设置weekday来实现星期几的提醒
    //先用传入的date创建时间容器,然后修改weekday后再转为NSDate
    	NSDateComponents * components = [[NSCalendar currentCalendar] components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond fromDate:date];
        components.weekday = i;
        NSDate * newDate = [[NSCalendar currentCalendar] dateFromComponents:components];
    //吧newDate再赋值给fireDate
    }
    
    

    3.取消通知

    //获取所有通知
    NSArray * localNotifications = [[UIApplication sharedApplication] scheduledLocalNotifications];
        for (UILocalNotification * notification in localNotifications) {
        	//找到和要删除的通知同名的通知删除
            if ([notification.userInfo[@"notificationName"] hasPrefix:notificationName]) {
            	//删除通知
                [[UIApplication sharedApplication] cancelLocalNotification:notification];
    
            }
        }
        
    

    注册通知

    //注册通知
    [[UIApplication sharedApplication] registerForRemoteNotifications];
        
    

    快捷使用

    封装了一个可以直接使用的类:ZBLocalNotification

    //提醒重复类型
    typedef NS_ENUM(NSInteger, ZBLocalNotificationRepeat) {
        ZBLocalNotificationRepeatNone,			//不重复
        ZBLocalNotificationRepeatEveryDay,		//每天
        ZBLocalNotificationRepeatEveryWeek,		//每周
        ZBLocalNotificationRepeatEveryMonth,	//每月
        ZBLocalNotificationRepeatEveryYear,		//每年
        ZBLocalNotificationRepeatEveryWorkDay	//每周一到周五(工作日)
    };
    
    //标识通知属性的key
    typedef NSString * ZBLocalNotificationKey;
    //标识通知声音文件名字的key
    typedef NSString * ZBLocalNotificationSoundName;
    
    extern ZBLocalNotificationKey const ZBNotificationFireDate;		//标识提醒时间
    extern ZBLocalNotificationKey const ZBNotificationAlertTitle;	//标识标题
    extern ZBLocalNotificationKey const ZBNotificationAlertBody;	//标识提醒内容
    extern ZBLocalNotificationKey const ZBNotificationAlertAction;	//标识按钮
    extern ZBLocalNotificationKey const ZBNotificationSoundName;	//标识声音
    extern ZBLocalNotificationKey const ZBNotificationUserInfoName;	//标识通知名字
    extern ZBLocalNotificationKey const ZBNotificationPriority;		//标识通知优先级
    extern ZBLocalNotificationKey const ZBNotificationRepeat;		//标识通知重复
    extern ZBLocalNotificationSoundName const ZBNotificationSoundAlarm;	//标识声音为提醒
    extern ZBLocalNotificationSoundName const ZBNotificationSoundOther;	//标识声音为其他
    
    @interface ZBLocalNotification : NSObject
    
    /**
     创建本地通知
    
     @param attribute 通知的属性
     */
    + (void)createLocalNotificationWithAttribute:(NSDictionary *)attribute;
    
    /**
     取消通知
    
     @param notificationName 通知名字
     */
    + (void)cancelLocalNotificationWithName:(NSString *)notificationName;
    
    #ifdef NSFoundationVersionNumber_iOS_9_x_Max
    
    /**
     注册通知
     */
    + (void)requestUNUserNotificationAuthorization;
    
    #endif
    
    @end
    

    创建时间为date的每天重复提醒例子:
    导入#import "ZBLocalNotification.h"

    [ZBLocalNotification createLocalNotificationWithAttribute:
                                    @{ZBNotificationUserInfoName:@"notificationName",
                                      ZBNotificationSoundName:ZBNotificationSoundAlarm,
                                      ZBNotificationAlertBody:@"提醒内容",
                                      ZBNotificationAlertTitle:@"提醒标题",
                                      ZBNotificationFireDate:date,
                                      ZBNotificationPriority:@(0),
                                      ZBNotificationRepeat:@(ZBLocalNotificationRepeatEveryDay)
                                      }];
                                      
    

    取消名字为 “notificationName” 的通知:

    [ZBLocalNotification cancelLocalNotificationWithName:@"notificationName"];
    
    

    通知优先级问题

    如果设置了多个推送通知,并且时间都在同一个时刻时,就是同时收到多个推送通知时,想要只显示优先级最高的一个,我是在AppDelegate里这样处理的(希望有更好的方法能不吝赐教 ? ):
    先创建一个userInfo容器,保存同一时间收到的通知
    self.userInfos = [[NSMutableArray alloc]init];

    //处理接收到的通知信息
    - (void)filteredUserInfo {
        if (self.userInfos.count == 0) {
            return;
        }
        //选出你希望显示的通知信息,以下方法是显示优先级高的,你可以判断不同的条件
        //排序所有收到的通知信息,对比优先级,把优先级最高的放首位
        [self.userInfos sortUsingComparator:^NSComparisonResult(NSDictionary * obj1, NSDictionary * obj2) {
            if ([obj1[ZBNotificationPriority] integerValue] < [obj2[ZBNotificationPriority] integerValue]) {
                return NSOrderedDescending;
            }
            return NSOrderedSame;
        }];
        
        //自定义展示推送内容
        [self showAlarmAlertWithUserInfo:self.userInfos.firstObject];
        //重置userInfo容器
        [self.userInfos removeAllObjects];
    }
    //添加通知到userInfo容器
    - (void)waitMultipleUserInfo:(NSDictionary *)userInfo {
        [self.userInfos addObject:userInfo];
        //创建信号量,设置为0
        dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
        dispatch_queue_t quene = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
        
        dispatch_async(quene, ^{
            
            if (self.userInfos.count == 1) {
            	//信号量为0时,那么这个函数就阻塞当前线程等待timeout,时间到后继续执行
            	//0.3秒内第一次进入则等待0.3秒,0.3秒后对本时间段内提醒提取优先级最高的一个
            	//就是保存在极短时间内(我这里设置为0.3s)收到的所有通知,然后进行处理
                dispatch_semaphore_wait(semaphore, dispatch_time(DISPATCH_TIME_NOW, 0.3 * NSEC_PER_SEC));
                dispatch_async(dispatch_get_main_queue(), ^{
                    [self filteredUserInfo];
                });
            }
        });
        
    }
    
    #pragma mark - localNotification
    // iOS10以下 在前台收到推送回调
    - (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{
        [self waitMultipleUserInfo:notification.userInfo];
    }
    
    #ifdef NSFoundationVersionNumber_iOS_9_x_Max
    
    #pragma mark - UNUserNotificationCenterDelegate
    // iOS10 在前台收到推送回调
    - (void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(nonnull UNNotification *)notification withCompletionHandler:(nonnull void (^)(UNNotificationPresentationOptions))completionHandler{
        UNNotificationRequest *request = notification.request; // 收到推送的请求
        UNNotificationContent *content = request.content; //收到推送消息的全部内容
        
        if ([notification.request.trigger isKindOfClass:[UNPushNotificationTrigger class]]) {
            NSLog(@"iOS10 收到远程通知");
        }else{
            NSLog(@"ios10 收到本地通知userInfo:%@",content.userInfo);
            [self waitMultipleUserInfo:content.userInfo];
        }
        completionHandler(UNNotificationPresentationOptionBadge |
                          UNNotificationPresentationOptionSound
                           );
        
    }
    
    #endif
    
    

    代码下载

    ZBLocalNotification类下载地址:
    ·iOS本地推送封装(定时推送、重复提醒)
    ·iOS本地推送封装(定时推送、重复提醒)

    疑问

    比如需求是可以自定义重复的时间:

    • 每隔两周的周二早上8点提醒
    • 每隔三个月的7号早上8点提醒

    这种时候的怎么实现,NSDateComponents需要怎么设置?

    谢谢!

    欢迎讨论,未完待续


    展开全文
  • 、实现的效果 不看下效果,你们怎么有动力仔细看完,不看完的又如何有动力点赞评论呢 如上图,眼尖的你可能看到了2月21日10点的漏了,那是因为我学python才22天基础肯定就得占用大半时间,那爬虫就学了10来天而已...

    一、实现的效果

    不看下效果,你们怎么有动力仔细看完,不看完又如何有动力点赞评论呢
    在这里插入图片描述如上图,眼尖的你可能看到了2月21日10点的漏了,那是因为我学python才22天基础肯定就得占用大半时间,那爬虫就学了10来天而已。(当然以前有一点点基础)弄得代码不完善,运行处错了。
    好了效果看完了,不废话,让我们开始吧。

    二、准备工作

    1、获取你的python.exe的路径

    在这里插入图片描述 如上图右键IDLE–属性–快捷方式–复制起始位置这个路径。
    桌面新建文本文档粘贴此路径
    复制上述路径粘贴至新建的文本文档第二行,后面加上 \python.exe 。

    2、获取你要准备运行的代码的路径

    这里以pycharm为例说一下 其他的大同小异。(当然你如果知道你代码存放在何处可以直接右键属性粘贴路径即可)
    在这里插入图片描述如上图得到你的代码路径之后粘贴至桌面上的文本文档第三行即可。

    至此准备工作完成了大半,你得到了一个有三行路径的文本文档如下
    在这里插入图片描述

    3、电脑设置开机密码

    如果你的电脑没有设置密码则需要设置一个简单的密码,后面需要,如果设置了当然更好。
    至此准备工作完成,马上开始我们的正文吧

    三、正文

    1、找到任务计划程序

    windows10的可以通过搜索快速打开,如下图即可打开
    在这里插入图片描述
    或者可以右键计算机或者此电脑–管理–系统工具–任务计划程序(此方法win7win10都可以)如下图
    在这里插入图片描述

    2、新建任务

    2.1创建基本任务

    在这里插入图片描述如上图,注意第一个名称框中可以随意输入,但不能空,建议不要随意输入。
    可以输入主要功能,方便后期找到次计划
    (小技巧:名称前面加上英语状态的下划线 _,然后每次打开计划任务时候点击一下名称(看下图),可以对名称进行排序,而英语状态的下划线是排在所以字母数字汉字文字的前面的,次技巧使用同样使用与微信昵称,文件命名等所有类似场景)
    在这里插入图片描述

    2.2、触发器

    如下图1根据需要选择,当然本次是希望一天内执行数次,那么当然选择每天,至于下图2先保持默认点击下一步,稍后会有针对触发器的详细设置
    在这里插入图片描述
    在这里插入图片描述

    2.3操作

    这个选择启动程序点击下一步即可,如下
    在这里插入图片描述
    重点来了,重点来了,重点来了
    如下图

    打开在准备工作新建的包含三个路径的文本文档,按如下关系复制粘贴
    在这里插入图片描述
    第一个框框 程序和脚本 中复制那个以python.exe结尾的路径
    第二个框框 添加参数 中复制你要定时运行的python程序
    第三个框框 起始于 中复制剩下的那个路径
    参数都复制好后点击下一步 此时将显示你的这个任务的基本信息 如无误则直接点击完成即可。
    至此一个简单的每天触发一次的程序就完成了,当然 你要的肯定不止如此 那么往下看吧。

    3、常规设置

    如下图
    在这里插入图片描述上图的常规设置,其他的好理解,其中隐藏这个复选框我猜测应该是后台运行的意思,有没有大佬看到的解释下
    配置好后,不要急着点确定,直接切换到旁边触发器那一栏

    4、触发器

    在这里插入图片描述
    如上图,注意这几个参数
    上面的 开始那一行 是定义从哪一天开始,每天几点开始执行的
    中间的 重复任务间隔持续时间就是每一天的运行时间间隔及持续的时间
    任务间隔最短的时间貌似是1分钟,更短的我没有试过 各位可以试试能不能到秒级。
    下面的 到期日期就不用多说了吧

    设置好后点击确定会弹出如下界面
    红色方框显示的是触发器一些,确认无误后可以点击确定
    弹出一个用户账户信息输入框 直接输入电脑的登陆密码即可

    在这里插入图片描述
    输入密码之后,对话框关闭 ,回到任务计划程序库中找到你刚创建的任务
    如显示如下信息,基本确定 已经成功。
    在这里插入图片描述
    当然 你可以更改触发器 使得下一次发生时间在一两分钟内以验证计划任务程序是否成功。

    四、结语

    这只是任务计划程序的一个方面的应用 ,还有很多应用 比如刚开始定义的操作中还有发送邮件,显示消息等功能,另外触发器设置中还有如下选择,各位可以自行探索,自行搭配。如对此博客有任何问题请私信,我会及时处理,谢谢。
    在这里插入图片描述

    展开全文
  • 首先申明,文章是我在码农网摘过来的,那里没有分享,我感觉程序员也需要鸡汤,或者说这篇文章更应该是一篇一个过来人的经验,以及对我们这些想学计算机或者其他各行各业的人的一个简单的阐述。读完文章后,感觉收获...
  • 今天,给大家分享两则小经验,让学霸教你如何每天一小时就可让英语水平在短短半年内突飞猛进。(还有应试小技巧哦~) 背景: 我来新加坡有两年了,报过班,自己也弄过不少资料,但一直都没有突破性的成效。...
  • SMS短消息PDU介绍

    千次阅读 2018-03-20 14:45:30
    PDU 相当于一个数据包、数据单元,它由构成短消息(SMS)的信息组成。作为一种数据单元,它必须包含源/目的地址、保护(有效)时间、数据格式、协议类型和正文,正文长度可达140字节,它们都以十六进制表示。PDU ...
  • quartz做定时任务调度时重复执行多次的原因及解决方法
  • 爆肝 200 小时,我做了编程导航!

    万次阅读 多人点赞 2021-01-23 11:58:40
    最近一个月,上班之余,我几乎将全部时间投入到自己的新项目...可以通过一个短视频了解项目: 爆肝200小时,我做了个编程导航! 编程导航主站 - 发现优质编程资源 网址:https://www.code-nav.cn 编程导航主页 -
  • 一个人做饭有哪些推荐?

    万次阅读 2016-07-13 15:19:32
    Chen Sam ,一个空号。 355 人赞同 -- 2015.12.28. 一个圣诞节长周末多了100个赞..What's going on here..感恩。 有同学私信说需要详细步骤的做饭教程,但是这里篇幅太局限了..如果开一个微信公众号什么...
  • 原文链接 目录 ...8.如何保证消息不被重复消费(幂等性) 9.如何保证生产者的发送消息的可靠性? RabbitMQ Kafka 10.如何保证消息的顺序性? 解决方案 11.如何解决消息过期的问题? 1.大量消息
  • 学英语最有效的办法:模仿+重复

    千次阅读 2018-08-11 22:28:34
    李勇,1979年农历10月初十,出生于江西南昌的一个小农村,中专毕业,2002年8月前英语还只有初中水平,后用两个月时间卧薪尝胆,发奋学习英语,战胜自我,取得人生巨大突破。2002年10月起开始从事外贸销售,创造了快速...
  • 2018年8月9日,支付百科公众号爆出某支付出重大事故,重复结算金额超过3亿。 重复结算是支付公司常见的错误,往往会给公司带来巨大资损。该公司在2014年11月4日、20...
  • 【转】用 Go 构建一个区块链

    千次阅读 2019-05-11 17:34:43
    不过,使它独一无二的是,区块链是一个公开的数据库,而不是一个私人数据库,也就是说,每个使用它的人都有一个完整或部分的副本。 只有经过其他数据库管理员的同意,才能向数据库中添加新的记录。 此外,也正是...
  • 软件工程期末复习(一小时通过考试,全是重点)

    万次阅读 多人点赞 2021-11-30 19:14:52
    信息隐藏和局部化: 模块独立:高内聚低耦合 第六章、详细设计 McCabe方法: 第七章、实现 编码(少) 白盒测试 语句覆盖 判定覆盖 条件覆盖 黑盒测试(根据需求说明) 等价划分法 每类中的典型值在测试...
  • .功能测试 搜索框输入内容为空,验证功能是否正确 搜索框输入内容为空格,验证功能是否正确 边界值验证:最大输入的字符串长度,最小输入的字符串长度 超长字符串的输入,系统是否会截取一定的长度来检验功能的...
  • 如果仅是追求高可用性,这其实并不难做,试想如果一年只有一个人访问你的系统,只要这一个人访问成功,那你系统的‘’可用性‘就是100%了。 可现实是,随着业务的发展,请求量会越来越高,进而各种系统资源得以...
  • 如何落地一个算法?

    千次阅读 2020-06-18 16:09:10
    简介:在解决实际问题的时候,很多人认为只要有机器学习算法就可以了,实际上要把一个算法落地还需要解决很多工程上的难题。本文将和大家分享如何从零开始搭建一个GPU加速的分布式机器学习系统,介绍在搭建过程中...
  • 不知道从什么时候开始,视频忽然就火了起来,大街上,地铁上,或者在家里,人手一个手机,手机里不断传出各种各样稀奇古怪的额声音,伴随着看手机人傻呵呵的笑声,已经成了现代社会一道靓丽的风景线。 毕竟相比于...
  • 计算机网络总结-一本书一个晚上一个奇迹

    万次阅读 多人点赞 2021-01-06 19:53:37
    错误 解析:协议是指通信双方必须遵循的、控制信息交换的规则的集合,是-套语义和语法规 则,一般说,一个网络协议主要由语法、语义和同步三个要素组成。分别规定了“怎么讲" , “讲什么”以及通信事件的执行顺序。 ...
  • 大牛军哥只给我一个命令:netstat -anp | grep "redis" 查看是否有类似下边的 上图中的代表的就是长连接,很疑惑,我就仔细研究了下,发现很有学问。 一、netstat简介 Netstat 命令用于显示各种网络相关信息,...
  • 直译叫做“不要重复你自己”,还有另外一个耳熟能详的版本,“不要重复造轮子”。 在你一开始进入软件开发这个领域后,就一定要注意,把你自己写过的一些解决方案汇总到一起,定期梳理一遍,写点文档,不断重构,使...
  • 目录 前言 一 TCP连接 二 长连接和心跳 1 概念 ...三 连接 ...四 长连接和连接的选择 ...2 连接使用场景:低频、无状态 ...两个进程之间如果要通信,很显然必须要建立一个连接,通过它来相互传输数据。在网络通...
  • 链接服务Octopus的实现与源码开放

    千次阅读 热门讨论 2020-12-27 20:39:28
    前提半年前(2020-06)左右,疫情触底反弹,公司的业务量不断提升,运营部门为了方便短信、模板消息推送等渠道的投放,提出了一个把长链接压缩为链接的功能需求。当时为了快速推广,使用了一...
  • 精进:如何成为一个很厉害的人--作者:采铜

    万次阅读 多人点赞 2019-12-04 15:12:19
    精进:如何成为一个很厉害的人 作者:采铜 文章目录精进:如何成为一个很厉害的人序 用更勇敢的方式去生活01 时间之尺 我们应该怎样对待时间活在“全部的现在” 从当下出发,联结过去与未来那么,一个人应该怎样对待...
  • 关键20小时,快速学会任何技能

    万次阅读 多人点赞 2016-07-02 07:24:21
    《关键20小时,快速学会任何技能》是本很神奇的书,就算你觉得这名字哗众取众,你还是会忍不住打开想看看它讲些什么。
  • 天1机器学习知识点(

    万次阅读 多人点赞 2020-06-13 12:12:43
    答:基本思想:试图寻找一个超平面来对样本分割,把样本中的正例和反例用超平面分开,并尽可能的使正例和反例之间的间隔最大。 几何间隔:点到超平面的距离。 注意到几何间隔与||w||是成反比的,因此最大化几何间隔...
  • 人类历史上第一个推荐系统

    千次阅读 2020-12-27 20:56:36
    让我们把时间推回到28年前那个风雨交加的夜晚,在一个小破屋里,几个老男人捣鼓出了人类历史上第一个推荐系统——Tapestry
  • 大数据下的视频

    千次阅读 2021-12-04 23:04:40
    视频无疑成为了人们“杀时间”的第利器。 视频编辑西语深有感受,他“抱怨”视频已见缝插针地深入到其生活的点点滴滴,自己会在上班间隙刷,上厕所、坐公交时刷,吃饭的时候刷,甚至逗宠物猫时也关小声音抽空...
  • 文章目录前言第回合、知识点:cookie(21/09/06)二、知识点:节流和防抖(21/09/07)三、知识点:var和let以及const(21/09/08)四:知识点:深拷贝和浅拷贝(21/09/09)五、知识点:作用域和作用域联(21/09/...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 49,387
精华内容 19,754
关键字:

短消息一个小时重复发