面试官问你什么内容的时候,其根本是为了了解你对这个东西的理解程度
1、讲自己的了解(知识)
2、讲自己的理解
你在面试官心目中,会是一个具有独立思考能力的人
操作系统上的不同:
ios基于Unix的系统
Android基于Linux的系统
各个方向:
操作
Android长按Home键呼出应用列表和切换应用,然后滑动终止应用
ios是向上滑动,终止应用
渲染
Android是在数据层渲染应用
ios是在UI层渲染应用
安装
Android是apk Android的权限给的是底层的root权限
ios app ios 给的仅仅是应用权限
兼容
...其实就是在讲渲染
4个重要组件:
1、Activity 监听用户屏幕操作,调用app底层操作的 一个枢纽--》用户和APP互动的枢纽
2、BroadcastReceiver 广播接收者 它是负责底层操作对Activity指令接受的
普通广播:广播类型、有序广播、无序广播
广播接收者会在Activity关掉之后,对应的广播失效
广播接受者运行的机制是被运行,不会主动调起
3、 service 服务
服务类型
通过startService启动的服务
服务周期: onstart--》onstartCommand---》onDestroy
通过onBind启动的服务
服务周期: onBind-》onUnBind---》onDestroy
service管理进程构建 举例: 音乐应用 后台播放 ,游戏应用 后台暂停
4、Content Provider(内容提供者)
实现不同应用程序直接的数据共享
它不仅仅可以对应用程序实现数据共享,还可以选择性的共享;(安全性的考虑)
举例:当你登录的时候选择微信登录,会调用微信获取微信的用户数据
1、页面布局
APP是负载在移动设备上(屏幕小)
pc屏幕大
所以测试的侧重点也不同
2、操作方式
app
触控
语音
键位
pc
鼠标
键盘
3、输入方式
app
屏幕的触控压力输入
语音识别输入
键位操作输入
pc
鼠标输入
键盘输入
4、使用场景
pc 电源稳定 电量 、场景固定 网络
app 电源不稳定 充电使用 、场景不固定 网络干扰较多
APP闪退会销毁原有进程;
所以APP闪退导致的问题,很多时候,在APP构建的源码中添加日志,无法确定异常所在;
首先要看设备日志;
获取Android崩溃日志
1、 logcat
导出
搜索:begin crash Exception fatal 注意:要过滤包名
2、adb bugreport
3、手机的本地文件 问开发路径在哪 然后导出
4、手机监控平台 记录手机的cpu 、io、memoryinfo
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: 内存消耗偏高导致的问题
1、内存消耗
APP调用的所需内存超过了可用内存;
内存是有管理进程的---》每个APP在调用之前,是由内存管理者分配内存大小的---》内存分配的限制小于APP所需
2、程序的逻辑错误(代码的不严谨,或者考虑的不够周到导致的)
逻辑处理错误:数组越界、堆栈溢出、并发操作、逻辑错误
3、设备兼容性
APP在不同的设备上有不同的体现
4、网络因素
网速不好,导致APP所需的响应时间不足;所以导致crash
网络切换可能会导致
crash是可以被修复的,出现关闭或等待两个操作,进程还在
但是闪退不能被修复,进程被销毁了。
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
有一个已经上线的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.测试项目 注:测试完成后需恢复设置
数据驱动 参数化 接口关联 断言 token sesssion cookie 持续集成 jenkins CI / CD
涉及的内容很多
定义层面的内容 如:操作系统
系统的详情
整体的了解
象征性意义的异常情况
比如:api 1、协议是什么?接口是什么?什么是接口自动化 2、对每个协议的理解 3、api测试和传统的测试有什么不同? 4、鉴权、接口加解密、接口关联、签名
作者:樱桃小丸子测试
原文链接:https://blog.csdn.net/qq_39270023/article/details/125192663