精华内容
下载资源
问答
  • 一个偶然的机会,我在抖音上面发现了一个类似钢琴的APP,然后就试着用App inventor做一个可以实现音乐功能的软件,暂且可以把它叫做木琴。经过3次的修改,最终成了下面的样子。让我们来一起看看吧! 一、简单的作品...

    目录

    一、简单的作品描述

    二、实现原理

    三、具体实现步骤 

    四、Android加载声音

    五、实现其余的音符

    六、记录并回放音符

    七、记录音符及时间

    八、块的功能

    九、音符的回放

    十、播放适当延迟的音符

    资源下载


    由于瘟疫肆虐,我在家中宅了好几天,简直不能太无聊。一个偶然的机会,我在抖音上面发现了一个类似钢琴的APP,然后就试着用App inventor做一个可以实现音乐功能的软件,暂且可以把它叫做木琴。经过3次的修改,最终成了下面的样子。让我们来一起看看吧!

    一、简单的作品描述

    基本界面如下图所示:

    功能介绍:

     

    • 通过触摸屏幕上的彩色按钮播放八个不同的音符;
    • 按“播放”按钮,回放之前弹奏的音符;
    • 按“重置”按钮清除之前弹过的音符,以便输入新曲。

    二、实现原理

    • 使用单一的声音组件来播放不同的音频文件;
    • 使用Clock组件来计算并实现两个音符之间的延时;
    • 在创建一个过程时做判断;
    • 创建能够自我调用的过程;

    三、具体实现步骤

    记得上次做的是蓝牙相关的实践,用的是汉语的界面,这次尝试用英文试一下!

    首先创建前两个键,用按钮来实现:

    1. 从面板(palette)的user interface组中拖出一个按钮。

    • BackgroundColor属性:为红色;

    • Text属性:为“C”;

    • Width属性:为“Fill parent”,使其占满屏幕;

    • Height属性:为40像素。

    2. 重复上述步骤创建第二个按钮,名为Button2,放在Button1下面。Width及Height属性值同Button1,但BackgroundColor属性设为红色,Text属性设置为“D”。如下图:

    {%}

    3.其他键位的设计完全按照上面的步骤来实现,在此就不一一说明了。

    添加其他组件

    木琴不能没有声音,所以我创建一个Sound组件,名字为Sound1。MinimumInterval(最小间隔)属性设置为0(默认值为500毫秒)。这可以让我们的演奏要多快有多快,而不必等半秒钟(500毫秒)。

    下载1.wav和2.wav,并加载到项目中,注意这里的声音文件必须保持原有文件名。

    当某个按钮被点击时,用程序来实现播放声音的行为,即:如果Button1被点击,则播放1.wav,如果Button2被点击,播放2.wav。

    若要切换到块编辑器,如下图所示,进行以下设置:

    1. 从Screen1项下的Button1抽屉里拖出Button1.Click块;
    2. 从Sound1抽屉里拖set Sound1.Source块,放置在Button1.Click块中;
    3. 输入“text”来创建一个文本块(而不是从Built-in项下的Text抽屉里拖出,这样更便捷。)设置文本值为“1.wav”,并与Sound1.Source块连接;
    4. 添加Sound1.Play块。

    {%}

     点击按钮时播放声音

    对Button2进行同样设置,如图(只改了文件名),代码几乎完全重复。

    {%}

    重复的代码提示我们最好是创建一个过程。用join块将数字(如1)与文本“.wav”连接起来,创造出正规的文件名(如“1.wav”)。下面是创建这个过程的步骤:

    1. 在块编辑器中打开Procedures抽屉,拖出“to procedure”块;

    2. 单击procedure将过程名改为playNote;

    3. 点击procedure块左上角的蓝色方块呼出内部组件,将一个input x块插入“inputs”块;

    4. 将input x块中的x改为number;

    5. 将set Sound1.Source to块从Button1.Click事件处理程序中拖出,放在PlayNote过程内“do”的右边,Sound1.Play块也将随之移动;

    6. 将1.wav块拖入垃圾桶;

    7. 从Text抽屉中拖出join块放到set Sound1.Source to的插槽内;

    8. 将鼠标悬停在playNote的number参数上,呼出并拖动get number块,并将其放入join块的第一个插槽中;

    9. 从Text抽屉中拖出空文本块,放在join块的第二个插槽中;

    注意:将文本值设置为“.wav”。(切记不要输入引号);

    从Procedures抽屉中拖出call PlayNote块,放到空的Button1.Click内;

    在number插槽中插入文本“1”。

    现在,当Button1被点击时,过程PlayNote将以数字1为参数被调用。该过程将Sound1.Source属性设为“1.wav”,并播放该声音。

    创建一个Button2.Click块,调用参数为2的PlayNote过程。(可以复制现有的PlayNote块,将其移动到Button2.Click块内,并将参数更改为2;也可以复制整个Button1.Click块,然后将Button1改为Button2,再将参数1改为2。)程序如图所示。

    {%}

    图 创建一个过程来演奏音符

    四、Android加载声音

    此时在手机上测试程序并不能成功:第一次按键时,弹出错误提示:“Error 703:Unable to play 1.wav”(不能播放1.wav);第二次再按同一个键时,才听到声音。

    原因:Android系统是在程序运行时才加载声音文件(只需加载一次),加载过程需要一点时间。第一次按键,当call Sound1 play块开始执行时,set Sound1.Source to块的加载任务尚未完成,因此系统给出错误提示;等到第二次按键时,声音文件已经加载完成,因此可以正常播放。

    解决方法:直到程序启动之后,我们也没有对Sound1.Source进行设置,因此没有对声音做初始化。我们必须在程序启动时直接加载声音文件,如图所示。

    {%}

    图 在应用启动时加载声音文件

    五、实现其余的音符

    两个按钮已经实现了演奏音符的功能,现在需要回到组件设计器,加载其余六个声音文件3.wav、4.wav、5.wav、6.wav、7.wav和8.wav,并添加其余六个音符。首先创建六个新Button组件,重复此前的步骤,

    {%}

    图 在组件设计器中放置其余的声音按钮

    回到块编辑器中,为每个新按钮创建Click块并以相应的参数调用PlayNote过程。同样,在Screen.Initialize中加载新的声音文件,如图所示。

    {%}

     对按钮单击事件编程,使得键盘与音调相对应

    六、记录并回放音符

    为了实现回放功能,需要记录弹奏的音符并加以保存。除了要记录弹奏的音高(声音文件),还要记录两个音符之间的时间长度,否则将无法表现两个连续快弹音符与两个间隔10秒的音符之间的差别。

    实现原理:维护两个列表,每弹奏一个音符,两个列表中都会各自添加一条记录:

    • notes:包含与演奏的音符相对应的声音文件名,按照演奏顺序排列;
    • times:记录音符演奏时的时间点。

    添加必要组件

    在设计器中添加一个Clock组件及“播放”和“重置”按钮,按钮放在HorizontalArrangement中:

    1. 拖入一个Clock组件,它将出现在“不可见组件”区域,取消勾选TimerEnabled属性。

    2. 从layout组中拖出一个HorizontalArrangement组件放在按钮下面,Width属性设为“Fill parent”;

    3. 从User Interface组中拖动一个按钮,改名为PlayButton,Text属性设为“播放”;

    4. 拖出另一个按钮并放在PlayButton右侧,改名为ResetButton,Text属性设为“重置”。

    {%}

    图 记录并回放声音的组件被添加到设计器中

    七、记录音符及时间

    实现原理:维护两个列表:notes与times,每次用户按下一个按钮,就向列表中添加一项:

    1. 从Variables抽屉中拖出一个initialize global name to块来定义一个新的变量;

    2. 单击“name”将变量命名为“notes”;

    3. 打开Lists抽屉,拖动一个make a list块,将其放置在变量notes的插槽中;

    这样就定义了一个名为“notes”的空列表。重复上述步骤定义另一个变量,命名为“times”。块的样子如图所示。

    {%}

    图 设置变量来记录音符

    八、块的功能

    每演奏一个音符,需要保存两项数据:声音文件名(保存到notes列表),以及演奏瞬间的时刻(保存到times列表)。用Clock1.Now块来记录时刻,它返回当前时刻的时间值,精确到毫秒。这些数据可以通过Sound1.Source和Clock1.Now块获得,将分别被添加到notes及times列表中。

     

     

    添加一个Sound1.Vibrate块,通过振动来告知用户按键生效了。实现逻辑如下:

    {%}

     为用户的“重置”操作提供反馈

    九、音符的回放

    实现原理:

    • 变量count用来跟踪notes列表中当前正在播放的音符的索引(位置);

    • 新过程 PlayBackNote,用来播放当前音符,并移动到下一个音符;

    • 编写PlayButton.Click事件处理程序,设置count为1,只要列表中有保存的音符,就调用PlayBackNote。

    {%}

    图 回放被记录下来的音符

    自我调用-----数学递归

    1. 在第一次调用PlayBackNote时,count= 1:

    • Sound1.Source被设置为在notes中的第1项,即1.wav;

    • 调用Sound1.Play,播放1.wav;

    • 由于count值(1)小于notes的长度(3),因此count递增为2,并再次调用PlayBackNote;

    2. 第二次调用PlayBackNote时,count=2:

    • Sound1.Source被设置为notes中的第2项,即3.wav;

    • 调用Sound1.Play,播放3.wav;

    • 由于count(2)小于notes的长度(3),因此count递增为3,并再次调用PlayBackNote;

    3. 第三次调用PlayBackNote时,count=3:

    • Sound1.Source被设置为notes中的第3项,即6.wav;

    • 调用Sound1.Play,播放6.wav;

    • 由于count(3)不小于notes的长度(3),因此跳出if块,回放结束。
    • 递归是正确的,但需要在两次调用PlayBackNote之间添加延迟功能。

    十、播放适当延迟的音符

    实现原理:

    延迟的设定与两个音符之间的时间差有关,用clock来为这个时间差计时。创建Clock1.Timer事件并编写事件处理程序,来说明计时结束时将发生的事情。

    {%}

    图  在音符之间加入延迟

    块的功能

    现在假设两个列表中记录了以下内容:

    • notes:1.wav,3.wav,6.wav

    • times:12:00:00,12:00:01,12:00:04

    如图所示,在PlayButton.Click中设置count为1,并调用PlayBackNote。

    1. 第一次调用PlayBackNote时,count= 1:

    • Sound1.Source被设置为notes中的第1项,即“1.wav”;

    • 调用Sound1.Play播放1.wav;

    • 因为count(1)小于notes的长度(3),于是Clock1.TimerInterval被设置为times列表中的第1项(12:00:00)与第2项(12:00:01)之间的时间差:1秒。Count递增到2,启用Clock1.Timer并开始计时;

    Clock1.Timer开始计时,间隔1秒之后,计时结束,定时器暂时禁用,并调用PlayBackNote。

    2. 第二次调用PlayBackNote时,count= 2 :

    • Sound1.Source被设置为notes中的第2项,即“3.wav”;

    • 调用Sound1.Play播放3.wav;

    • 因为count(2)小于notes的长度(3),于是Clock1.TimerInterval被设置为times列表中的第2项(12:00:01)与第3项(12:00:04)之间的时间差:3秒。Count递增到3,启用Clock1.Timer并开始计时;

    Clock1.Timer计时开始,间隔3秒之后,定时器暂时禁用,并调用PlayBackNote。

    3. 第三次调用PlayBackNote时,count= 3 :

    • Sound1.Source被设置为notes中的第3项,即“6.wav”;

    • 调用Sound1.Play来播放6.wav;

    • 由于count(3)不小于notes的长度(3),跳出if块,回放完成。

    最后通过扫描二维码下载制作好的软件,来打发无聊的时光吧!

    本次实践的最大收获是:编写一个能自我调用的过程不仅是可能的,有时也是必要的。递归就可以实现,在编写递归过程时,一定要确保为程序的退出设定一个基本条件,否则程序将陷入无限循环。好了今天就分享的这里吧,有问题可以通过下方留言。

    资源下载

    1.wav

    2.wav

    3.wav

    4.wav

    5.wav

    6.wav

    7.wav

    8.wav

     
     
    展开全文
  • python 爬取手机app的信息

    千次阅读 2020-06-28 23:11:14
    我们在爬取手机APP上面的数据的时候,都会借助Fidder来爬取。今天就教大家如何爬取手机APP上面的数据。 Python学习资料或者需要代码、视频加Python学习群:516107834 环境配置 1、Fidder的安装和配置 下载Fidder...

    我们在爬取手机APP上面的数据的时候,都会借助Fidder来爬取。今天就教大家如何爬取手机APP上面的数据。

    Python学习资料或者需要代码、视频加Python学习群:516107834

    环境配置

    1、Fidder的安装和配置

    下载Fidder软件地址:链接:https://pan.baidu.com/s/15TI0oe-_BXb_6i8AaUhMFg   提取码:vm5f

    然后就是傻瓜式的安装,安装步骤很简单。在安装完成后,打开软件,进行如下设置:

    默认的8888端口

    2、手机的配置

    首先打开cmd,输入ipconfig查看IP地址,记录下这个IP地址:

    想要使用FIdder进行手机抓包,要让手机和PC处在同一个内网中,方法就是连接同一个无线网络。然后打开手机,进入Wi-FI设置修改代理为手动代理,再把上面的IP地址和8888端口号输入进去:

     

    然后打开浏览器,输入http://127.0.0.1:8888,会看到如下界面,点击FidderRoot certificate下载证书:

     

    下载好之后如果出现无法安装的情况,可以进入设置进行手动安装证书,我的安装步骤是“设置->系统安全->从SD卡安装”,不同的手机安装步骤不同,不过也差不多吧。

    3、抓包测试

    在完成上面的步骤之后,我们先进行一下抓包测试,打开手机的浏览器,然后打开百度的网页,可以看到出现了对应的包,这样就可以进行之后的抓取了。

    抓取步骤

    这次使用的APP是王者荣耀盒子,打开APP,点击英雄,可以看到第一个英雄-上官婉儿,然后点进去。

    然后在Fidder中可以找到如下这个包:

    然后在右侧可以看到如下信息:

    把这些信息复制一下,然后解码一下就可以看到如下数据了,包括英雄名字、英雄图片、英雄技能等信息:

    但是在推荐装备的信息里,只有装备的id值,却没有装备的名字,那我们要怎么获得这些装备的名字呢?还是同样的办法,点击查看所有装备,然后抓包,找到对应的包,再进行爬取。在获得所有的装备和对应的id后,可以再爬取所有的英雄名称,然后就可以制作我们自己的英雄攻略了==

    运行结果如下:

     

    展开全文
  •  在当今竞争激烈的市场上一个APP的成功离不开一个可靠的测试工程师。因此,对功能和用户体验有特殊关注的App进行全面测试是必不可少的。如何做到测试用例的百分百覆盖一直是测试用例编写过程中的难点,首先在测试时...

    目录:导读

    一、前言

    二、安装卸载测试点

    安装测试

    卸载测试

    三、登录注册测试点

    登录测试点

    注册测试点

    四、更新推送测试点

    数据更新

    消息推送

    五、还有易用性,兼容性,安全性太多了!


    一、前言

        在当今竞争激烈的市场上一个APP的成功离不开一个可靠的测试工程师。因此,对功能和用户体验有特殊关注的App进行全面测试是必不可少的。如何做到测试用例的百分百覆盖一直是测试用例编写过程中的难点,首先在测试时我们经常会遇见一些常见的bug,那么我们可以在编写测试用例时考虑到这些点。以下是笔者总结的通用的手机app测试用例关注点!目录如下:

    二、安装卸载测试点

    笔者来自公众号:软测之家

    安装测试

    安装方式 通过浏览器下载安装包进行安装包
    通过手机端的应用商店进行安装
    通过手机自带的应用商店进行安装
    通过连接电脑进行安装(如91助手,手机管家等)
    通过电脑传送到手机的安装包
    通过手机之间的互传进行安装
    扫码安装
    安装步骤界面 安装页面语义无二意检查
    安装过程中提示信息的正确性检查
    安装是否可以随时退出操作界面检查
    安装过程中的控制/
    异常情况
    安装的空间本来足够,但在安装过程下载文件到手机,使空间不足
    同时运行两个相同的安装程序
    同时运行两个不同的安装程序一个语记另一个其他的
    在没有网的情况下能否安装
    有网情况下能否安装
    安装时网突然断了能否安装
    安装时切换到其它应用,让安装程在后台运行安装
    安装过程中接听电话
    升级安装 在已经安装的情况下,卸载原软件,安装高版本,能否正确安装
    在已经安装的情况下,卸载原软件,安装低版本,能否正确安装
    在已经安装的情况下,不卸载原软件,直接安装高版本,能否正确安装
    在已经安装的情况下,不卸载原软件,直接安装低版本,能否正确安装
    软件不升级是否能正常运行
    升级安装是否需要重启手机
    升级安装后原来的数据是否仍在
    安装环境(2020年) 在Android6.0版本下安装app
    在Android7.0版本下安装app
    在Android8.0版本下安装app
    在Android9.0版本下安装app
    在ios6.0系统版本
    在ios7.0 系统版本
    在ios8.0 系统版本
    在ios9.0系统版本
    在ios10.0 系统版本
    在ios11.0 系统版本
    在ios12.0 系统版本
    安装后检查 成功安装app后,是否有新图标,检查app功能是否正常
    跨版本升级安装后,检查原有图标是否消失,新图标是否会出现
    app更新提示检查 客户端有新版本,自动弹出提示更新
    版本为非强制升级,取消后,app正常使用
    版本为强制升级,取消后,退出app,再次打开app再次弹出升级提示。

    卸载测试

    卸载方式 软件自带卸载程序能否正确卸载
    长按图标卸载
    卸载状态 卸载正在运行的软件
    没有网的情况下卸载
    正在卸载中取消了能否正确卸载
    卸载中途断网是否能正确卸载
    卸载中途重启是否能正确卸载
    卸载中途关机是否能正确卸载
    卸载提示 卸载时是否有相应的卸载提醒
    卸载过程中进度条是否正确显示
    卸载时否有拒绝卸载,狠心卸载,修复提示
    卸载时是否显示相关信息
    卸载环境 在Android6.0版本下卸载app
    在Android7.0版本下卸载app
    在Android8.0版本下卸载app
    在Android9.0版本下卸载app
    在ios6.0系统版本卸载app
    在ios7.0 系统版本卸载app
    在ios8.0 系统版本卸载app
    在ios9.0系统版本卸载app
    在ios10.0系统版本卸载app
    在ios11.0系统版本卸载app
    在ios12.0系统版本卸载app
    卸载后检查 卸载完成后,查看是否对其他软件有影响
    卸载完成后,app桌面快捷方式是否已删除
    将软件卸载后,观察app的安装路径是否有残留文件
    卸载后原来安装的插件是否删除

    三、登录注册测试点

    笔者来自公众号:软测之家

    登录测试点

    正常登录 用户名登录 输入正确的用户名和密码,查看能否成功登陆
    手机号码登录 输入正确的手机号码和验证码,查看能否成功登陆
    第三方登录 查看此app支持的第三方登录方式(如:QQ,微信)能否登录成功,前置条件:用户已有账号并绑定了QQ和微信
    异常登录 用户名密码登录各种异常情况 用户名不输入,输入正确的密码,查看能否成功登录
    输入正确的用户名,密码不输入,查看能否成功登陆
    用户名和密码都不输入,查看能否成功登陆
    输入含有非法字符的用户名如¥#@*&*,正确的密码,查看能否登录成功
    输入的用户名是大写的(原来是小写的),正确的密码查看能否登录成功
    输入的用户名含有空格(原来没有空格),正确的密码查看能否登录成功
    输入错误的用户名,正确的密码,查看能否登录成功
    用户名其他长度或组合规则限制异常
    输入正确的用户名,密码含有空格(原来没有空格),查看能否成功登录
    输入正确的用户名,密码大写(原来小写),查看能否成功登录
    输入正确的用户名,错误的密码,查看能否成功登录
    查看密码是否支持复制粘贴功能。
    查看密码是否使用加密。
    密码其他长度或组合规则限制异常
    手机号码登录各种异常情况 获得验证码后手机号码不输入,输入正确的验证码,查看是否成功登录。
    输入正确的手机号码,验证码不输入,查看能否登录成功。
    手机号码和验证码都不输入,查看能否登录成功。
    获得验证码后输入11位的手机号码含有空格,输入正确的验证码,查看是否成功登录。
    获得验证码后手机号码输入11位中文,输入正确的验证码,查看是否成功登录。
    获得验证码后手机号码输入11位字母,输入正确的验证码,查看是否成功登录。
    获得验证码后手机号码输入11位特殊字符,输入正确的验证码,查看是否成功登录。
    获得验证码后手机号码减少一位数字,输入正确的验证码,查看是否成功登录。
    获得验证码后手机号码增加一位数字,输入正确的验证码,查看是否成功登录。
    输入正确的手机号码,获取验证码(含有空格),查看是否成功登录。
    输入正确的手机号码,获取验证码,输入错误的验证码,查看是否成功登录。
    输入正确的手机号码,获取验证码,输入大小写不一致的验证码,查看是否成功登录。
    输入正确的手机号码,获取验证码,5分钟后输入正确的验证码,查看是否成功登录。
    输入正确的手机号码,获取两次验证码,输入第一次获取的验证码,查看是否成功登录。
    第三方登录各种异常情况 在未安装QQ的手机,使用第三方QQ登录。
    在已安装QQ但是未登录QQ的手机,使用第三方QQ登录。
    用户从未注册,使用QQ第三方登录。
    在未安装微信的手机,使用第三方微信登录。
    在已安装微信但是未登录微信的手机,使用第三方微信登录。
    用户从未注册,使用微信第三方登录。
    密码错误超出次数账号锁定 输入正确的用户名,错误的密码(密码输错3次(5次)以下),查看能否成功登录
    输入正确的用户名,错误的密码(密码输错3次(5次)以上),查看用户是否会被锁定
    多点登录 在一台手机上登录后,在使用另一个手机登录同一个账号

    注册测试点

    正常注册 按照提示,正常进行注册操作,查看能否成功注册
    异常注册 用户名长度问题 输入超过用户名规定长度的字符,查看能否成功输入
    输入用户名小于规定长度的字符,查看能否成功注册
    密码长度问题 输入超过密码规定长度的字符,查看能否成功输入
    输入密码小于规定长度的字符,查看能否成功注册
    手机号为空 不输入手机号,直接点击下一步,
    验证码为空 输入手机号:188........,不输入验证码,点击下一步
    在手机无网络的情况下进行注册 断开手机网络,输入手机号:189........,查看能否获取验证码
    三次点击获取验证码 输入正常的手机号,3次点击获取验证码,输入第1次获得的验证码,查看能否进行下一步
    输入正常的手机号,3次点击获取验证码,输入第2次获得的验证码查看能否进行下一步
    输入正常的手机号,3次点击获取验证码,输入第3次获得的验证码查看能否进行下一步
    输入验证码间隔时间 输入正常的手机号,点击获取验证码,立即输入验证码
    输入正常的手机号,点击获取验证码,在手机上提示后过5分钟,输入验证码
    验证码大小写 输入验证码时使用大小写切换,查看能否进入下一步
    手机号错误 输入正常的手机号,点击获取验证码
    已停机的手机 输入已停机的手机号,点击获取验证码
    已销户的手机号 输入销户的手机号,点击获取验证码
    注册一个已经注册过的手机号 输入手机号:189........,点击获取验证码,查看能否获取

    四、更新推送测试点

    笔者来自公众号:软测之家

    数据更新

    手动刷新

    确认有数据更新后,是否需要手动更新

    自动刷新

    确认有数据更新后,是否自动更新

    前后台切换

    确认从后台切换回前台时,该页面是否需要进行数据更新

    从服务端请求实时响应

    该数据是否从服务端请求实时响应

    缓存到本地的数据

    该数据是否缓存到本地的数据

    消息推送

    默认开关

    观察默认开关状态

    设置开关

    打开

    观察设置开关是否可以自由打开

    观察开关打开状态下,消息推送是否可正常推送

    关闭

    观察设置开关是否可以自由关闭

    观察开关关闭状态下,消息推送是否可正常推送

    后台未打开APP

    后台未打开APP客户端时,手机消息栏是否可以接受到消息提醒

    接收到提醒后,点击查看后,提醒是否会在消息栏消失

    五、还有易用性,兼容性,安全性太多了!

    如果你对此文有任何疑问,如果你觉得此文对你有帮助,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入软件测试技术群:603401995,群里免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。

    笔者:来自公众号:软测之家
    出处:https://blog.csdn.net/weixin_48500307
    原创不易,欢迎转载,但未经作者同意请保留此段声明,并在文章页面明显位置给出原文链接。

    展开全文
  • 一、前言  在当今竞争激烈的市场上一个APP的成功离不开一个可靠的测试工程师。因此,对功能和用户体验有特殊...以下是笔者总结的通用的手机app测试用例关注点!目录如下: 二、安装卸载测试点 笔者来自公众号...

    目录

    一、前言

    二、安装卸载测试点

    安装测试

    卸载测试

    三、登录注册测试点

    登录测试点

    注册测试点

    四、更新推送测试点

    数据更新

    消息推送

    五、还有易用性,兼容性,安全性太多了!


    一、前言

        在当今竞争激烈的市场上一个APP的成功离不开一个可靠的测试工程师。因此,对功能和用户体验有特殊关注的App进行全面测试是必不可少的。如何做到测试用例的百分百覆盖一直是测试用例编写过程中的难点,首先在测试时我们经常会遇见一些常见的bug,那么我们可以在编写测试用例时考虑到这些点。以下是笔者总结的通用的手机app测试用例关注点!目录如下:

    二、安装卸载测试点

    笔者来自公众号:软测之家

    安装测试

    安装方式 通过浏览器下载安装包进行安装包
    通过手机端的应用商店进行安装
    通过手机自带的应用商店进行安装
    通过连接电脑进行安装(如91助手,手机管家等)
    通过电脑传送到手机的安装包
    通过手机之间的互传进行安装
    扫码安装
    安装步骤界面 安装页面语义无二意检查
    安装过程中提示信息的正确性检查
    安装是否可以随时退出操作界面检查
    安装过程中的控制/
    异常情况
    安装的空间本来足够,但在安装过程下载文件到手机,使空间不足
    同时运行两个相同的安装程序
    同时运行两个不同的安装程序一个语记另一个其他的
    在没有网的情况下能否安装
    有网情况下能否安装
    安装时网突然断了能否安装
    安装时切换到其它应用,让安装程在后台运行安装
    安装过程中接听电话
    升级安装 在已经安装的情况下,卸载原软件,安装高版本,能否正确安装
    在已经安装的情况下,卸载原软件,安装低版本,能否正确安装
    在已经安装的情况下,不卸载原软件,直接安装高版本,能否正确安装
    在已经安装的情况下,不卸载原软件,直接安装低版本,能否正确安装
    软件不升级是否能正常运行
    升级安装是否需要重启手机
    升级安装后原来的数据是否仍在
    安装环境(2020年) 在Android6.0版本下安装app
    在Android7.0版本下安装app
    在Android8.0版本下安装app
    在Android9.0版本下安装app
    在ios6.0系统版本
    在ios7.0 系统版本
    在ios8.0 系统版本
    在ios9.0系统版本
    在ios10.0 系统版本
    在ios11.0 系统版本
    在ios12.0 系统版本
    安装后检查 成功安装app后,是否有新图标,检查app功能是否正常
    跨版本升级安装后,检查原有图标是否消失,新图标是否会出现
    app更新提示检查 客户端有新版本,自动弹出提示更新
    版本为非强制升级,取消后,app正常使用
    版本为强制升级,取消后,退出app,再次打开app再次弹出升级提示。

    卸载测试

    卸载方式 软件自带卸载程序能否正确卸载
    长按图标卸载
    卸载状态 卸载正在运行的软件
    没有网的情况下卸载
    正在卸载中取消了能否正确卸载
    卸载中途断网是否能正确卸载
    卸载中途重启是否能正确卸载
    卸载中途关机是否能正确卸载
    卸载提示 卸载时是否有相应的卸载提醒
    卸载过程中进度条是否正确显示
    卸载时否有拒绝卸载,狠心卸载,修复提示
    卸载时是否显示相关信息
    卸载环境 在Android6.0版本下卸载app
    在Android7.0版本下卸载app
    在Android8.0版本下卸载app
    在Android9.0版本下卸载app
    在ios6.0系统版本卸载app
    在ios7.0 系统版本卸载app
    在ios8.0 系统版本卸载app
    在ios9.0系统版本卸载app
    在ios10.0系统版本卸载app
    在ios11.0系统版本卸载app
    在ios12.0系统版本卸载app
    卸载后检查 卸载完成后,查看是否对其他软件有影响
    卸载完成后,app桌面快捷方式是否已删除
    将软件卸载后,观察app的安装路径是否有残留文件
    卸载后原来安装的插件是否删除

    三、登录注册测试点

    笔者来自公众号:软测之家

    登录测试点

    正常登录 用户名登录 输入正确的用户名和密码,查看能否成功登陆
    手机号码登录 输入正确的手机号码和验证码,查看能否成功登陆
    第三方登录 查看此app支持的第三方登录方式(如:QQ,微信)能否登录成功,前置条件:用户已有账号并绑定了QQ和微信
    异常登录 用户名密码登录各种异常情况 用户名不输入,输入正确的密码,查看能否成功登录
    输入正确的用户名,密码不输入,查看能否成功登陆
    用户名和密码都不输入,查看能否成功登陆
    输入含有非法字符的用户名如¥#@*&*,正确的密码,查看能否登录成功
    输入的用户名是大写的(原来是小写的),正确的密码查看能否登录成功
    输入的用户名含有空格(原来没有空格),正确的密码查看能否登录成功
    输入错误的用户名,正确的密码,查看能否登录成功
    用户名其他长度或组合规则限制异常
    输入正确的用户名,密码含有空格(原来没有空格),查看能否成功登录
    输入正确的用户名,密码大写(原来小写),查看能否成功登录
    输入正确的用户名,错误的密码,查看能否成功登录
    查看密码是否支持复制粘贴功能。
    查看密码是否使用加密。
    密码其他长度或组合规则限制异常
    手机号码登录各种异常情况 获得验证码后手机号码不输入,输入正确的验证码,查看是否成功登录。
    输入正确的手机号码,验证码不输入,查看能否登录成功。
    手机号码和验证码都不输入,查看能否登录成功。
    获得验证码后输入11位的手机号码含有空格,输入正确的验证码,查看是否成功登录。
    获得验证码后手机号码输入11位中文,输入正确的验证码,查看是否成功登录。
    获得验证码后手机号码输入11位字母,输入正确的验证码,查看是否成功登录。
    获得验证码后手机号码输入11位特殊字符,输入正确的验证码,查看是否成功登录。
    获得验证码后手机号码减少一位数字,输入正确的验证码,查看是否成功登录。
    获得验证码后手机号码增加一位数字,输入正确的验证码,查看是否成功登录。
    输入正确的手机号码,获取验证码(含有空格),查看是否成功登录。
    输入正确的手机号码,获取验证码,输入错误的验证码,查看是否成功登录。
    输入正确的手机号码,获取验证码,输入大小写不一致的验证码,查看是否成功登录。
    输入正确的手机号码,获取验证码,5分钟后输入正确的验证码,查看是否成功登录。
    输入正确的手机号码,获取两次验证码,输入第一次获取的验证码,查看是否成功登录。
    第三方登录各种异常情况 在未安装QQ的手机,使用第三方QQ登录。
    在已安装QQ但是未登录QQ的手机,使用第三方QQ登录。
    用户从未注册,使用QQ第三方登录。
    在未安装微信的手机,使用第三方微信登录。
    在已安装微信但是未登录微信的手机,使用第三方微信登录。
    用户从未注册,使用微信第三方登录。
    密码错误超出次数账号锁定 输入正确的用户名,错误的密码(密码输错3次(5次)以下),查看能否成功登录
    输入正确的用户名,错误的密码(密码输错3次(5次)以上),查看用户是否会被锁定
    多点登录 在一台手机上登录后,在使用另一个手机登录同一个账号

    注册测试点

    正常注册 按照提示,正常进行注册操作,查看能否成功注册
    异常注册 用户名长度问题 输入超过用户名规定长度的字符,查看能否成功输入
    输入用户名小于规定长度的字符,查看能否成功注册
    密码长度问题 输入超过密码规定长度的字符,查看能否成功输入
    输入密码小于规定长度的字符,查看能否成功注册
    手机号为空 不输入手机号,直接点击下一步,
    验证码为空 输入手机号:188........,不输入验证码,点击下一步
    在手机无网络的情况下进行注册 断开手机网络,输入手机号:189........,查看能否获取验证码
    三次点击获取验证码 输入正常的手机号,3次点击获取验证码,输入第1次获得的验证码,查看能否进行下一步
    输入正常的手机号,3次点击获取验证码,输入第2次获得的验证码查看能否进行下一步
    输入正常的手机号,3次点击获取验证码,输入第3次获得的验证码查看能否进行下一步
    输入验证码间隔时间 输入正常的手机号,点击获取验证码,立即输入验证码
    输入正常的手机号,点击获取验证码,在手机上提示后过5分钟,输入验证码
    验证码大小写 输入验证码时使用大小写切换,查看能否进入下一步
    手机号错误 输入正常的手机号,点击获取验证码
    已停机的手机 输入已停机的手机号,点击获取验证码
    已销户的手机号 输入销户的手机号,点击获取验证码
    注册一个已经注册过的手机号 输入手机号:189........,点击获取验证码,查看能否获取

    四、更新推送测试点

    笔者来自公众号:软测之家

    数据更新

    手动刷新

    确认有数据更新后,是否需要手动更新

    自动刷新

    确认有数据更新后,是否自动更新

    前后台切换

    确认从后台切换回前台时,该页面是否需要进行数据更新

    从服务端请求实时响应

    该数据是否从服务端请求实时响应

    缓存到本地的数据

    该数据是否缓存到本地的数据

    消息推送

    默认开关

    观察默认开关状态

    设置开关

    打开

    观察设置开关是否可以自由打开

    观察开关打开状态下,消息推送是否可正常推送

    关闭

    观察设置开关是否可以自由关闭

    观察开关关闭状态下,消息推送是否可正常推送

    后台未打开APP

    后台未打开APP客户端时,手机消息栏是否可以接受到消息提醒

    接收到提醒后,点击查看后,提醒是否会在消息栏消失

    五、还有易用性,兼容性,安全性太多了!

    如果你对此文有任何疑问,如果你觉得此文对你有帮助,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入软件测试技术群:695458161,群里发放的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。

    作者:诸葛
    出处:https://blog.csdn.net/pengjiangchun
    原创不易,欢迎转载,但未经作者同意请保留此段声明,并在文章页面明显位置给出原文链接。

    展开全文
  • 如何获取手机app的签名

    千次阅读 2016-11-02 10:06:56
    1.将你需要获取签名的app安装在手机上; 2.在该手机上安装签名工具。 签名工具: 1.工具下载地址获取签名工具 2.工具截图: 怎么用:看到工具截图了吧,将你需要获取签名的app报名复制进去,点击生成,MD5...
  • 自己写的app安装后,正常显示,卸载后,在软件管理里面还可以看到,但是其他安全管家 找不到,然后安装打包后的apk,显示不能降级安装
  • 最近在做vue项目的时候遇到了这样的一个需求,点击复制微信昵称并打开手机微信的功能,在网上查了一下,vue有一个第三方的插件,考虑到各个浏览器剪切板的兼容性问题,就直接引用了这个插件,打开微信就通过url协议...
  • 安卓手机App反编译

    千次阅读 2019-07-12 17:57:20
    安卓手机App反编译 jadx 下载:https://github.com/skylot/jadx 里面有详细的操作步骤 在使用的过程发现导出文件一直卡死,直接用命令行导出,报错。。。。 尝试解决,还是不行,修改参数失败,所有换工作 dex2jar +...
  • 随着互联网技术的不断发展和完善,很多企业都开发了自己的APP,以此来介绍...那么手机APP是如何接入米多客在线客服系统的呢?小编今天就给大家介绍一下。 APP如果是H5界面可以用网页插件和聊天链接的形式接入米多...
  • 这里介绍几款可以在手机上编程的app,分别是: 1.java和Android:AIDE集成开发环境。 2.C语言:c语言编译器、C4droid。 3.python:QPython3、Termux。 4.CSS/HTML/JavaScript:HTMLplay。 大部分都不需要root,...
  • 因为APP的游戏软件目前很多,统计了一下,截至目前为止,掌盟现已发布APP程序近百个,下面是详细目录和游戏软件中英文对照表: 01手机QQ √ (QQ2009) [不需破解]02雷霆战机 √03夺命天涯 √ 04君临天下 √05炫彩...
  • HBuilder打包手机app的方法

    千次阅读 2017-11-08 14:54:23
    软件既可以支持web代码编写,也可以将已经编写好的项目代码打包为手机APP,本文主要讲解使用Hbuilder将项目代码打包为手机APP的使用方法; 步骤如下: 1、 先在官网下载Hbuilder工具:也可以用360软件管家...
  • Python爬取手机APP上面的数据

    千次阅读 2018-12-31 15:50:47
    在我们在爬取手机APP上面的数据的时候,都会借助Fidder来爬取。今天就教大家如何爬取手机APP上面的数据。 环境配置 1、Fidder的安装和配置 下载Fidder软件地址:https://www.telerik.com/download/fiddler ...
  • android app 内 实现文本复制粘贴功能

    万次阅读 2016-03-17 18:56:14
    app内实现复制粘贴功能,主要分为两种情况。一种是点击按钮,复制指定的文本。一种是长按文本调用系统的复制功能。 (一)主要用于复制一些序列号,邀请码神马的,点击按钮即可复制手机粘贴板。(类似看图...
  • 雪鲤鱼Snowfish平台是除掌盟拇指30平台的另外一种APP格式国产MTK系列手机的应用平台!虽然在国产机上的知名度和应用数量不是很多,但仍有为数不少的国产山寨手机内置了这种平台!不少铜丝也不断的咨询这类平台的应用...
  • 手机app测试方法(一)基本流程

    万次阅读 2017-02-15 15:46:11
    先简单介绍下APP的测试流程,下一篇主要给大家介绍介绍一下APP的测试点
  • 全面理解未来手机软件销售的主流模式——App Store 手机软件开发全程指导——理论基础+产品设计+软件推广+实战演练 解读竞争理论,揭示项目推广的内在规律——平台辐射原理 深刻剖析产品成功的三大要素——需求性...
  • 谷歌商店APP下载以及杀毒软件

    万次阅读 2019-05-13 20:12:13
    复制链接,使用以上网址下载: ...AV test 最佳安卓手机杀毒软件:这两款连续三年都是满分 Internet Security Norton Mobile Security 以下是电脑杀毒软件再AV test 获取满分的频次 McAf...
  • Appium 是一个自动化测试开源工具,看到没,做测试用的,它有点类似Selenium,可以自动操作APP实现一系列的操作。 标记重点,可以使用python对Appium编写脚本,实现对App的抓取。 今天就给你写一个100%叫你...
  • 职场java开发菜鸟一枚,最近有一个需求,想要从手机自带的应用商店中获取某一款APP的评论信息,比如评分、评分内容、评论时间信息。后期可以做成通用性比较强的功能,比如可以获取小米、华为、OPPO...手机应用商店的...
  • 奇怪的是为什么在PC领域不能重演微软那样的故事啊,譬如安卓操作系统的提供商顺便绑定office, txt阅读器,文件系统,媒体处理软件啊 ?...那么随着HTML5的兴起,手机上的BS应用会不会代替很多APP呢 ? 我想是的。
  • 手机app逆向基础工具介绍1、夜神模拟器2、Androidkiller3、burpsuite 本文介绍了三款手机软件逆向工具: 模拟器:夜神模拟器 apk编辑器:Androidkiller 代理抓包器:burpsuite 1、夜神模拟器 夜神模拟器是一款可以在...
  • 手机APP物联网远程控制开关

    万次阅读 2020-09-10 21:17:29
    2 系统总体方案设计 2.1 技术指标 本次毕业设计的主要任务是通过设计软硬件以及相应手机app程序、上位机软件和网页实现一款物联网远程终端控制开关系统,针对较长距离和工业现场环境恶劣,增加远程数据采集和通信的...
  • 昨天通过hbuilder将做了一部分的vue项目进行打包成app测试,发现打包成的app点击手机的返回键的时候直接退出了app,并不会返回上一页 于是去网上查了一下终于解决了这个问题 参考博客链接:...
  • 手机app日志分析系统(一)

    千次阅读 2018-11-19 13:23:08
    一、项目介绍 ------------------------------------------------- ... 2.App软件 3.数据服务平台提供商 Umeng, 向App开发商提供服务。提供App使用情况的统计服务。 4.SDK 数据服务平台提供商提供给App开发...
  • IOS免越狱安装历史版本APP软件

    万次阅读 2018-01-14 21:09:58
    首先我们需要准备两个软件 ①、itunes12.5.2.36及以下版本 ②、Fiddler 这儿以下载“UC浏览器10.5.5“为例 一、打开Fiddler进行必要的设置(重要) 打开软件后选择“提琴手选项” 打开HTTPS选项卡,如图...
  • Fusion APP-检查软件更新-远程公告

    千次阅读 2020-04-20 08:28:37
    往期相关文章:Fusion APP-添加检查软件更新功能Fusion APP-简单网页转app制作教程今天更新别的远程更新以及远程公告方法效果:设置渠道:现在网数据注册以及添加软件远程更新代码:(可以将代码放到按钮或者程序...
  • jupyter notebook 成功启动jupyter notebook后,会在命令行生成一个带token的url,复制它到你的手机浏览器上,现在在你的手机上好好练习代码吧… 代码运行 一道Leetcode上的练习题,在jupyter notebook上运行是不是...
  • 如何用手机保存APP上的视频

    万次阅读 热门讨论 2019-01-02 16:28:17
    很多时候我们在看微博、网易云等手机APP上的视频时,因为内容非常有意义,所以想要保存到手机中,但是发现这些app上都没有这样的功能!这可怎么办呢? 很多人因为不会保存而盯着视频,看了半天却不想退出,最后不得...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,391
精华内容 11,356
关键字:

复制手机app的软件