面试中怎么分析面试官对你的提问
面试官问你什么内容的时候,其根本是为了了解你对这个东西的理解程度
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、antJMETER 持续集成 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、鉴权、接口加解密、接口关联、签名
版权归原作者 樱桃小丸子测试 所有, 如有侵权,请联系我们删除。