面试题
- 自我介绍
- 测试用例设计
微信发红包
页面刷不出来问题排查 - 算法题
有序数组插入数字 - Java基础知识
对多态的理解
==和equals的区别
重载和重写的区别
hashmap和hashtable的区别
接口和抽象类的区别
arraylist与linklist区别
数组和链表的区别 - Linux命令
查看日志某个关键字的前后50行 - 网络基础知识
tcp
http header包含的字段 - 测试项目介绍,包括测试框架和被测系统框架
Spring和springboot的区别
怎么展开测试
被测系统的技术都有哪些,数据流向
zookeeper通信
mq介绍
答案
2.微信发红包测试用例
给单个好友发红包
- 金额输入框测试
1)只能输入数字校验
2)钱数校验 200 0.01 0 200.01 199.99 - 备注测试
1)不输入空白/空格
2)汉字,英文,符号,表情,纯数字,汉字英语符号
3)输入长度长度测试 - 支付测试
1)余额支付/银行卡支付
2)余额/银行卡金额不足
3)密码正确/错误
4)指纹支付-正确/错误
5)支付成功后余额或银行卡钱对应减少
6)不支付返回-取消发红包 - 收取红包
1)对方收取 余额钱正确增加
2)自己收取-无法收取
3)过期收取 /过期后钱原路退回
4)断网时收取红包 - 连续发红包
- 特殊情况测试
1)发红包时切换应用
2)发红包时接到电话 - 兼容测试
1)安卓/苹果手机收发红包正常
2)不同分辨率的手机
3)pc端收发红包
4)网络兼容:3g/4g ,Wi-Fi - 性能
1)发红包和收红包成功后的跳转时间
2)收发红包的耗电量
3)退款到账的时间 - 易用性
- 界面 页面布局,文案
- 安全性
APP页面刷不出来问题排查
1)排查手机自身的问题,网络,内存
2)如果是WebView加载的H5页面,如果是https协议,查看是否是证书配置问题
3)后台问题。
可能是后台的sql有问题。当查询的数据量过大时,而当前的sql不够优化,查询起来很费时,甚至出现无法获取最终结果的可能
服务端挂机
5.查看日志常用命令
- 查看实时的日志
tail -f filename //会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容
-f 循环读取 - 查看指定字符的日志
cat filename | grep abc
cat filename | grep abc -A4 //查看filename中含有abc所在行后4行内容
cat filename | grep abc -B4 //查看filename中含有abc所在行前4行内容
cat filename | grep abc -C4 //查看filename中含有abc所在行前、后4行内容 - 日志内容特别多,打印在屏幕上不方便查看
cat -n filename |grep “debug” |more 这样就分页打印了,通过点击空格键翻页 - 查看头10行的日志
head -n 10 filename
7.网络基础知识
- 网络体系结构
OSI七层协议:物理层,数据链路层,网络层,运输层,会话层,表示层,应用层
五 层 协 议 : 物理层,数据链路层,网络层,运输层,应用层 - 网络层:IP
运输层:TCP/UDP
应用层:HTTP,DNS
TCP和UDP的区别:
1)TCP是面向连接的;UDP是无链接的,即发送数据之前不需要建立连接
2)TCP提供可靠的服务,也就是说,通过TCP连接传送的数据,无差错、不丢失、不重复、并且按序到达;UDP使用尽最大努力交付,即不保证可靠交付
3)TCP是面向字节流的,TCP把数据看成一连串的无结构的字节流;UDP是面向报文的,对应用层交付下来的报文,既不合并,也不拆分, UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
4)每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
5)TCP首部开销20字节;UDP的首部开销小,只有8个字节
HTTP链接请求过程:
链接是:http://www.tsinghua.edu.cn/chn/yxsz/index.htm
1)浏览器分析链接指向页面的URL;
2)浏览器向DNS请求解析www.tsinghua.edu.cn的IP地址;
3)域名系统DNS解析出清华大学服务器的IP地址为XX.XX.XX.XX;
4)浏览器和服务器建立TCP连接;
5)浏览器发出请求数据命令:GET/chn/yxsz/index.htm;
6)服务器给出响应,把数据发送给浏览器;
7)释放TCP连接;
8)浏览器中展示
HTTP协议本身是无连接的,且是无状态的
HTTP请求消息头:
从第二行到空白处都叫消息头
1)Accept:浏览器可接受的MIME类型。告诉服务器客户端能接受什么样类型的文件
2)Accept-charset:浏览器通过这个头告诉服务器,它支持哪种字符集
3)Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzip
4)Accept-Language:浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时要用到,可以在浏览器中进行设置
5)Host:初始URL的主机和端口
6)Reffer:包含一个URL,用户从该URL代表的页面出发访问当前请求的页面
7)Content-Type:内容类型,告诉服务器浏览器传输数据的MIME类型,文件传输的类型,applocation/x-ww-form-urlencoded(默认类型)
8)If-Modify-Since:Web,02 Feb 2011 12:04:56 GMT 利用这个头与服务器的文件进行对比,如果一致,则从缓存中直接读取文件
9)User-Agent:浏览器类型
10)Content-length:表示请求消息正文的长度
11)Connection:表示是否需要持久连接,如果服务器看到这里的值为‘keep-alive’,或者看到请求使用的时Http1.1(Http1.1默认进行持久连接)
12)Cookie
13)Date:Mon,22 Aug 2011 01:55:39 GMT 请求时间GMT
消息正文:
当请求方式是POST方式时,才能看到消息正文
响应消息行:
HTTP/1.1 200 OK
协议/版本 响应状态码 对应响应码的描述
Date:Mon,22 Aug 2011 01:55:39
Content-Type:
Content-length:
空行
响应正文
8. 服务端相关知识
zookeeper:
- 是什么
用于分布式中一致性处理的框架,解决了分布式系统的一些难点,使用zookeeper开发者可以很轻松的实现:配置管理,命名服务,分布式锁,集群关系操作,检测节点的加入和离开 - 提供了什么?
1)文件系统
2)通知机制 - zookeeper的简单总结
zookeeper主要用于担任服务生产者和服务消费者的注册中心,服务生产者将自己提供的服务注册到Zookeeper中心,服务的消费者在进行服务调用的时候先到Zookeeper中查找服务,获取到服务生产者的详细信息之后,再去调用服务生产者的内容与数据 - zookeeper和dubbo的关系
dubbo是一种rpc框架,provider将接口在zookeeper中注册,consumer订阅接口,然后就可以在代码中像调用本地方法一样,调用远程方法