0


APP测试面试题总结

面试中怎么分析面试官对你的提问

面试官问你什么内容的时候,其根本是为了了解你对这个东西的理解程度

1、讲自己的了解(知识)
2、讲自己的理解

     你在面试官心目中,会是一个具有独立思考能力的人

问题1:你做过IOS测试吗?android和ios测试有哪些区别?

操作系统上的不同:

    ios基于Unix的系统
     Android基于Linux的系统

各个方向:

** 操作**

    Android长按Home键呼出应用列表和切换应用,然后滑动终止应用
     ios是向上滑动,终止应用

** 渲染**

    Android是在数据层渲染应用
     ios是在UI层渲染应用

安装

    Android是apk    Android的权限给的是底层的root权限
     ios app     ios 给的仅仅是应用权限

兼容

** ... 其实就是在讲渲染**

问题2:Android的重要组件有几个?分别是干嘛的?

4个重要组件:
** 1、Activity 监听用户屏幕操作,调用app底层操作的 一个枢纽--》用户和APP互动的枢纽
** 2、BroadcastReceiver 广播接收者
它是负责底层操作对Activity指令接受的

                                 普通广播:广播类型、有序广播、无序广播
              广播接收者会在Activity关掉之后,对应的广播失效  

             广播接受者运行的机制是被运行,不会主动调起

**3、 service 服务 **

** 服务类型 **

       **通过startService启动的服务    **

          **  服务周期: **onstart--》onstartCommand---》onDestroy

      **通过onBind启动的服务**

** 服务周期: **onBind-》onUnBind---》onDestroy

 **service管理进程构建   举例:**   音乐应用  后台播放  ,游戏应用  后台暂停

** 4、Content Provider(内容提供者) **

** **** 实现不同应用程序直接的数据共享**

** 它不仅仅可以对应用程序实现数据共享,还可以选择性的共享;(安全性的考虑)**
举例:当你登录的时候选择微信登录,会调用微信获取微信的用户数据

问题3:app测试和传统软件测试有什么不同?

1、页面布局

    APP是负载在移动设备上(屏幕小)
     pc屏幕大
     所以测试的侧重点也不同

2、操作方式

app

    触控
     语音
     键位

pc

** 鼠标**

** 键盘**

3、输入方式

app

    屏幕的触控压力输入
     语音识别输入
     键位操作输入

pc

** 鼠标输入**

** 键盘输入**

4、使用场景

pc 电源稳定 电量 、场景固定 网络

app 电源不稳定 充电使用 、场景不固定 网络干扰较多

问题4:app闪退,如何给开发提供对应的日志

APP闪退会销毁原有进程;

所以APP闪退导致的问题,很多时候,在APP构建的源码中添加日志,无法确定异常所在;

首先要看设备日志;
获取Android崩溃日志
** 1、 logcat **

     **导出**   

     **搜索:begin    crash    Exception    fatal   注意:要过滤包名**
**2、adb bugreport**

** 3、手机的本地文件 问开发路径在哪 然后导出**
4、手机监控平台 记录手机的cpu 、io、memoryinfo

问题5:app出现ANR,你会先从哪个角度去分析?

ANR 全称:application not responding

分析思路:使用排除法去分析问题,对用的内容需要开发提供对应的日志监控,重现这个过程,去获取这个日志

**1、触发机制 **
服务超时 20s
广播超时 10s

    内容提供者超时     5-10s

    输入事件的超时      5s

2、日志
** a.Trace日志: 广播超时阻塞**
** b. logcat : **

** 搜索关键字:anr in 、low_memory、slow_operation**
** c.分析kernel:搜索日志中的lowmemorykiller**

** d.cpuinfo:监控,复查,确定问题的存在 内存、IO、cpu %**
** e.meminfo: ** **内存消耗偏高导致的问题 **

问题6:app出现crach/崩溃,你会先从哪个角度去分析?

1、内存消耗

  APP调用的所需内存超过了可用内存;
   内存是有管理进程的---》每个APP在调用之前,是由内存管理者分配内存大小的---》内存分配的限制小于APP所需

2、程序的逻辑错误(代码的不严谨,或者考虑的不够周到导致的)

** 逻辑处理错误:数组越界、堆栈溢出、并发操作、逻辑错误**

3、设备兼容性

** APP在不同的设备上有不同的体现**

4、网络因素

** 网速不好,导致APP所需的响应时间不足;所以导致crash**

** 网络切换可能会导致**

crash是可以被修复的,出现关闭或等待两个操作,进程还在

**但是闪退不能被修复,进程被销毁了。 **

面试中常见的一些工具的使用

jmeter

jmeter怎么运行测试用例

** 运行方式:**

** GUI运行:点击启动按钮**

** 非GUI运行/命令行运行: jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder****]**

** 单线程提起多线程运行**

鉴权怎么处理/测试?

鉴权:

cookie 配置元件 ---》 HTTP Cookie管理器

session 配置元件 ---》 HTTP Cookie管理器

** session生效方式是在cookie中 添加一个session_id字段**

token 从上个接口的响应提取出来,传递给下个接口

**签名(加密) **

** 加密规则 **

** 1、拼接(时间戳,随机数,令牌,请求数据)后加密 所以我们根据加密规则伪造加密数据即可**

** 2、排序后拼接后再加密 所以我们根据加密规则伪造加密数据即可**

跨线程数据怎么处理

** 跨线程的数据传递 原理是:将私域变量声明为全局变量,从而可以全局引用 **

** 函数助手对话框 ${__setPropeyty(,,)} 声明 , ${__P(,)} 调用**
注意实现,声明和调用有先后关系;一定要声明在前,调用在后

**
jmeter中怎么使用函数和变量**

** ****${函数名}**

** ${__V(函数拼接名${函数名}}**

jmeter录制脚本的流程,和录制的原理是什么?

** 流程 **

** 启动http代理 注意事项,在启动前要设置好目标控制器**
** 设置计算机网路代理**

** 运行被测项目**

** 停止http代理**

** 恢复计算机网路代理**

** 原理:**

** 网络代理的原理 **

** 理解:理解:好像BOSS和员工A之间传话的秘书(秘书能知道BOSS对员工A说了什么
,也知道员工A对BOSS 说了什么**

jmeter测试报告的生成

1、界面生成 查看结果树 聚合报告
2、命令行生成 jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder
]
3、ant

JMETER 持续集成 jenkins CI / CD

fiddler

有一个已经上线的APP项目,你怎么测试?

    就是网络代理拦截数据,修改数据,然后传递服务器的过程

如果要测一个APP的不同的网络情况下的使用,你怎么测试?

** fiddler的弱网测试 网络代理 + 设置不同的网络传输字节情况**

弱网测试执行步骤:

**操作步骤1.设置要模拟的网络速度 **

** (1)选中需要设置弱网的接口,自定义规则。Rules ->Customize Rules**

** ( 2) ctrl+F 输入m_SimulateModem或者300,找到m_SimulateModem
(3)更改上行、下行网络速度,Ctrl+S 保存**

** 注:
request-trickle-delay:代表每KB的数据被上传时会被延时多少毫秒
response-trickle-delay:对应下载时每KB的数据会被延时多少毫秒**

2.开启网络延时

** ( 1 ) Rules->Performance->Simulate Modem Speeds
(2)测试项目并记录数据**

**3.测试项目 **

** 注:测试完成后需恢复设置**

postman高级部分

数据驱动 参数化

接口关联

断言

**token sesssion cookie **

持续集成 jenkins CI / CD

总结:

涉及的内容很多

    定义层面的内容       如:操作系统
     系统的详情    

     整体的了解

    象征性意义的异常情况

比如:api

1、协议是什么?接口是什么?什么是接口自动化

2、对每个协议的理解

3、api测试和传统的测试有什么不同?

4、鉴权、接口加解密、接口关联、签名


本文转载自: https://blog.csdn.net/qq_39270023/article/details/125192663
版权归原作者 樱桃小丸子测试 所有, 如有侵权,请联系我们删除。

“APP测试面试题总结”的评论:

还没有评论