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、鉴权、接口加解密、接口关联、签名

你可能感兴趣的:(面试,测试工具,web,app,web,application,面试,网络协议)