手机APP测试理论知识

Android与ios的区别;

Android: 1操作系统开放

        2 开发语言有 java、kotlin

        3 程序包的名字为:xxx.apk

        4 每家手机厂商都有自己开发的手机系统,都是基于安卓系统开发的,安卓系统是使用谷歌公司维护的

        5 序列号表示一部安卓手机

ios:  使用软件 蒲公英  和

1、操作系统是闭源

      2、开发语言 Objective、Swift

      3、程序包的名字为 xxx.ap

      4、系统由苹果公司维护

      5、Udid 表示一部手机

 

Web app 优点和缺点:

优点

1开发成本低

2版本更新,维护方便

3 跨平台

4兼容性好(不同游览器可以使用)

缺点:

1 用户流失量大

2 用户体验一般(相较于手机上的app)

3 性能好坏取决于游览器和网络

4 数据传输不安全

 

App与后端交互过程:

 

 

 

1、c端发送请求到nginx服务器

 

2、nginx服务器转发c端请求到tomcat服务器

 

3、tomcat服务器解析请求到java代码执行c端请求

 

4、java代码操作mysql数据库生产结果

 

5、tomcat对响应结果进行封装处理,nginx转发响应结果

 

6、c端接受响应结果进行解析处理,app将结果展示给客户

 

 

 

Token(令牌):

用户使用app与后台交互时产生的访问令牌

Token可以实现免密登陆,登录功能可以直接使用

App测试流程   

服务器 api端包含内容:新表、修改字段、清表

代码回滚意思:重新回到上次的版本也就是重新开始(将程序或数据恢复到上一次正确状态的行为)

确认熟悉需求

编写测试用例

等待测试环境搭建

冒烟测试(不通过时退回)

执行测试用例

提交并跟踪bug

回归测试

预发布环境(1验证主要功能、2 bug回归、3 关联模块)

线上环境(1验证主要功能)

申请上线

公司级别的测试项目组成(自动化测试框架)

项目名(总目录)
data(测试数据的目录)

element(定位元素的文件目录)
logs(自动化代码产生的日志文件目录)

src(全部是测试用例,以python包形式)

  版本一(测试用例,python包)

Until(公共类,函数的目录,是以python包的形式)

report(测试报告目录)

 

Appium 用法

基于selenium开发

Appium 是一种开源,跨平台,支持多语言的自动化测试框架

跨平台:Windows、mac、linux 直接运行appium

支持多门语言:python、java、php、c、c++

Appium:移动端的·app(原生、混合、web)安卓、ios

Appium是c/s架构

 

 

{

  "platformName": "Android",  手机系统

  "platformVersion": "5.1.1",   系统版本

  "deviceName": "emulator-5554", 手机序列号

  "appPackage": "com.ss.android.ugc.aweme",安装包名

  "appActivity": "main.MainActivity",  安装包活动名

  "noReset": "true"     为true表示用户数据   为false表示清除用户数据

}

App的专项测试(测试内容)

作用:用于app需求分析,测试点设计

1、app的功能测试

什么是功能测试:主要测试的是app能否正常处理产品设计的业务逻辑

功能测试时软件测试的基础

App的功能测试需求-----产品经理的需求文档prd

2、APP的UI测试

UI测试的依据:UI工程师UI原型图

UI测试包含功能测试

什么是UI测试:验证app与用户交互的过程中界面是否美观,用户操作是否方便,布局是否合理

UI测试的内容:1、文字(是否存在错别字)

              2、颜色(背景颜色、按键颜色)

              3、图片(图片放缩的大小)

              轮播图:循环播放的图片

              后台数据库配置:图片的url更改就可以更改图片        4、弹出框(弹出框的布局)

              5、toast文本(查看错别字、报错信息)

              6、按键(功能有无响应、按键大小、按键的点击范围)

3、APP的兼容性测试

目的:保证app能在绝大部分手机上运行

从哪方面考虑手机APP的兼容性测试:

1、手机系统

安卓:安卓系统角度出发,兼顾主流系统(5.0到9.0)

可以用模拟器测试

ios:ios最低10 ,ios最高12.4.1(开发搞定)

云测试:使用第三方平台进行对产品的测试

     2、屏幕分辨率

       屏幕的尺寸、屏幕的像素、

1、     app与后端api的兼容               

      使用工具;fiddler 抓包工具

        情景一:app升级、后端api不升级

        App新版本对应老的api:验证新版本添加的功能是否可以正常使用

        情景二:app和api同时升级

         老的app版本对应老的api

         老的app版本对应新的api  *****************

         新的app版本对应老的api

         新的app版本对应新的api  ******************

2、     APP的安全测试    

1数据安全:

   1、用户信息传递是否加密(身份证、银行卡、手机号、密码)   

   验证加密使用工具fiddler抓包

   2、sql注入:类似于病毒,攻击目标是数据库

   3、app数据传输敏感词汇是不允许出现的

   4、用户保存在app内,是否在启动app后可以还原用户的操作

       2应用权限

1系统权限

相机(照片存和读取)

通讯录、短信、麦克风、wifi、蓝牙、cps

新安装一个app获取权限的过程:某个功能需要的权限没给时的场景

3、     app更新测试

软更新:由用户自主更新

硬更新:强制用户进行更新

更新之后测试内容:1更新之前的数据是否保存

                  2更新之后数据被清掉,重新获取权限,相当于新安装的app、

缓存:指的是用户数据在app中暂时性保存

4、     交互性,交叉事件测试

      交互性:1系统的弹框通知

              2 一个app使用另一个app的功能

              3 消息推送、短信推送、创蓝253平台

      交叉事件:1电话通讯
                2 语音通话

                3 视频聊天

             4 多个app同时使用一个功能,先入为主

5、     网络测试

强网测试:

4g、3g、wifi、热点

传输数据的效率

弱网测试:2g      

弱网导致的不稳定因素:1、数据传输不全2、信息被劫持

无网络测试:飞行模式、不开wifi、不开流量

无网络验证的是:无网络是否有提示

如何模拟fiddler弱网环境:

9     app性能测试

手机测试工具:monkey 手机APP的稳定性

腾讯工具GT可以测试以下指标:

性能指标:内存、cpu、网络流量、耗电量、响应时间(测试的是api接口·响应速度)1~2秒

6、     app安装卸载测试

  安装测试:

     ios下载途径:第一种:appstore

              第二种:网络途径下载但需要信任一个证书,才能使用

     Andriod:第一种:应用商店

              第二种:网络途径(游览器下载)

              第三种:第三方平台

   推广渠道:通过url 连接下载app

  注意事项:(安装后一定要测试的)

1、     引导页面   2、权限

卸载测试:

1、     用户数据是否清除

2、     相关权限是否权限

3、     卸载app的时候的进度条

7、     app压力测试

 monkey可以用于压力测试

1、     crash 程序异常退出(崩溃,用户可以看到报错内容)

2、     闪退 app

 

自动化测试应用于那个阶段

1、     回归测试阶段

2、     场景:兼容性测试

3、     压力测试:接口的压力测试

 

自动化测试流程

1、     开发完成项目交付测试之后

2、     定位相关功能的元素,

3、     准备测试数据(一般是Excel、csv文件、json文件、数据库、)用来保存测试数据

4、     按照分析的需求点进行测试代码的编写

5、     准备好自己的测试环境(appium的测试环境)

6、     将测试代码与测试数据组合到一起,执行测试代码,生成测试报告

7、     分析测试报告,定位bug

 

测试报告中执行的失败的用例分析:

1、     检查自己的代码是否存在逻辑上的错误

2、     代码逻辑上不存在错误,从开发的产品上找出原因分为以下步骤

a交叉验证:新老版本的相同功能进行对比

b查看测试代码的日志

c 服务器后台日志(开发人员)

d fillder抓取报错功能的接口返回数据

8 开发人员对bug进行修复,修复之后回归测试(重跑测试代码)

9 产品发布到预发或线上

9     代码合并与维护

 

自动化测试需要准备

1、     python语言

2、     模块:selenium、appium、pymysql、logging、xlrd、pytest、allure   **************************************8

3、     allure测试报告生成

4、     测试项目的结构

5、     Appium的环境:

组成:java、SDK工具包、node.js(游览器语言)

Appium-desktop(UI appium服务器)、python Appium模板

自动化测试的优点

1,     针对测试工作量大的可以使用自动化测试

2,     某些功能重复使用率高的

3,     避免一些人为因素产生的疏漏

自动化测试缺点

1、     写代码和维护代码需要耗费大量的人力物力

2、     对测试人员编写代码能力要求高

3、     测试代码不稳定,容易受到一些外界因素的影响

4、     需求一旦变动,测试代码重写

什么样的项目适合进行自动化测试

1、     项目周期长

2、     需求变更不频繁

3、     需求功能明确的

 

posted @ 2020-11-28 18:39  无名志士  阅读(487)  评论(0编辑  收藏  举报