测试基础
测试流程
- [需求分析阶段]:参与需求评审会议、阅读需求、理解需求、分析需求点,也就是了解业务
- [测试计划阶段]:根据需求分析文档,编写测试计划,包括测试范围、人力物力安排、测试策略、风险评估 - 测试负责人
- [测试设计阶段]:参考需求文档、概要设计文档、详细设计文档来编写测试用例,有不懂的地方及时和产品经理或开发沟通,之后会有测试用例评审
- [测试执行阶段]:搭建测试环境,执行预测(冒烟测试),冒烟测试就是看当前版本是否可测,冒烟测试通过,正式进入系统测试,遇到 bug 提交至缺陷管理平台,并对 bug 进行跟踪,直到被测软件达到测试需求要求,没有重大 bug,测试结束。
UI 自动化测试
UI 自动化从脚本运行到服务器端发生了什么?
- UI 自动化测试有三大块组件:客户端脚本、驱动(Webdriver)、浏览器终端;
- 驱动 Webdriver 启动后,相当于暴露了一系列接口的服务器,监听某一端口;
- 客户端的操作,比如访问页面、定位元素、输入元素、点击按钮等等都是被封装成了接口请求(HttpRequest 对象),然后提交到驱动 Webdriver
- Webdriver 接收到客户端请求后,再跟终端浏览器交互
- 浏览器做出相应的操作。
Linux 常用命令
目录、文件处理命令
cd
:切换工作目录
ls
:列出指定内容目录
ls -l
:以列表形式查看
ls -h
:以一种人性化的方式查看,也是文件的大小以合适的单位显示
ls -a
:查看所有文件带详细信息、可读可写可执行权限、包括隐藏文件
ls -i
:显示出文件的 i 节点号
pwd
:显示当前工作目录的据对路径
cp
:复制文件或文件夹
cp -a
:
cp -p
:同时复制文件属性,比如修改日期
cp -d
:复制时保留文件链接
cp -r
:复制文件夹时,递归复制子文件夹
cp -l
:不复制,而是创建指向源文件的链接文件,链接文件由目标文件给出
mv
:移动文件或文件夹,可以在移动的时候重命名
rm -r
:递归删除文件或文件夹
rm -f
:强制删除即没有提醒
mkdir
:创建目录
rmdir
:删除一个空文件夹
touch ${filename}
:创建文件,可以一次创建多个文件、以空格隔开
cat
:查看文件内容
find
:搜索指定范围内的文件
压缩解压缩命令
tar
:压缩生成的文件名、要压缩的目录
zip
:压缩生成的文件名、要压缩的文件
unzip
:要解压缩的文件
网络命令
ping ip
:测试网络连通性
ipconfig
:查看当前网卡信息
其他命令
ps -aux
:使用 BSD 语法查看所有进程
ps -ef
:标准语法查看所有进程
- UID 程序被该 UID 所拥有
- PID 就是这个程序的 ID
- CPU 资源占用百分比
- STIME 系统启动时间
- TTY 登入者的终端机位置
- TIME 使用掉的 CPU 时间
- CMD 所下达的指令方向
top
:动态查看系统的状态
lsof -Pti:${port}
:通过端口号获得进程 pid
lsof -i ${port}
:查看端口占用
kill -9 pid
:强行杀死指定 pid 的进程
history
:查看历史命令
exit
退出
clear
清屏
chmod
修改文件权限
grep
强大的搜索工具,搭配正则表达式,把匹配的行打印出来
who am i
:查看自己所在的终端信息
who
:查看当前谁在使用该主机
netstat
:查看网络是否连通
env
:查看所有环境变量
env $HOME
:查看指定环境变量
du
:显示目录或文件大小
df
:显示每个文件所在文件的系统信息,默认显示所有文件系统
网络与协议
输入一个网址,接下来发生了什么?
三次握手?
四次挥手?
get 和 post 的区别?
了解哪些状态码
TCP 和 UDP 区别
五层协议 七层协议 路由器在哪一层
数据库
操作系统
进程和线程的区别?
- 进程是 CPU 资源分配的最小单位,有自己独立的地址空间;线程是程序执行的最小单位,没有独立的地址空间;
- 一个进程可以包含多个线程
- 因为地址空间分配,导致不同的进程间通信非常困难,但是一个进程中的不同线程非常方便
算法
- 冒泡排序
软问题