一、测试流程
阶段名 | 工作内容 | 产出物 |
---|---|---|
测试准备阶段 | 项目立项、需求分析、需求评审 | 需求文档、产品PRD |
测试计划阶段 | 编写测试计划、计划评审 | 测试计划 |
测试设计阶段 | 提取测试点、编写测试用例、用例评审 | 测试用例 |
测试执行阶段 | 冒烟测试、执行测试用例、提bug、回归测试 | 缺陷报告 |
测试完成阶段 | 验收测试、编写测试报告、项目上线 | 测试报告 |
二、场景法
2.1 定义
通过模拟业务场景来对系统的功能点或业务流程的描述,从而提高测试效果的黑盒测试方法
2.2 ATM引入场景法
ATM流程图.png2.2 原理图
image.png2.3 两个流
2.3.1 基本流
- 概念
正确完成的流程 - 流程
插卡 → 输入密码 → 选择服务 → 取款 → 选择金额 → 等待出钞 → 取出卡片
2.3.2 备选流
- 概念
存在异常的流程,对于基本流每一步都取反 - 流程
插卡 → 输入密码 → 密码错误 → 重新输入 → 密码正确 → 选择服务 → 取款 → 选择金额 → 等待出钞 → 取出卡片
2.4 场景法测试用例编写过程
- 分析用户场景
- 设计场景覆盖基本流和备选流
- 输出测试用例
2.5 练习:
注册图.pngimage.png
2.6 作业:
APP升级.png三、charles抓移动端包
3.1 抓取移动设备发送的Http请求
-
先将移动设备连接到Charles客户端。首先在电脑中输入cmd打开命令行窗口,输入ipconfig查看本机连接无线网络的IP地址,这个地址作为移动设备连接Charles客户端的代理地址
image.png -
打开Charles客户端,点击Proxy->Proxy Settings菜单,可以设置移动设备连接到Charles的端口(8888),这样移动设备代理配置需要的ip地址和端口号都有了。
image.png -
打开手机wifi,设置所连接的wifi的代理网络;wifi代理设置为手动,代理的服务器ip填写上一步骤中查看到的电脑ip,端口填写上一步骤提到的charles的服务端口:
image.png
image.png
注意:
①移动设备配置之后,第一次通过手机访问手机中的发送请求时,Charles会弹出提示框,提示有设备尝试连接到Charles,是否允许,如果不允许的话,手机发送请求失败,点击Allow允许,这样这个设备的IP地址就会添加到允许列表中,如果错误点击了Deny可以重启Charles会再此提示,或者通过Proxy->Access Control Settings手动添加地址,如果不想每个设备连接Charles都要点击允许的话,可以添加0.0.0.0/0允许所有设备连接到Charles。
②手机与电脑必须连接同一个WiFi
③不要勾选Proxy → SSL Proxying setting 中的Enable SSL Proxying
四、断点替换/修改数据
4.1. 断点的作用:用来构建异常的测试场景
4.2. 步骤:
-
右击接口链接,选择“BreakPoints”
image.png - 在浏览器刷新对应接口的页面
- 此时会自动跳转到Charles并显示出接口请求信息
-
点击“Edit Request”,修改请求信息,点击“Execute”
image.png - 点击“Edit Response”
- 在数据格式兰中选择合适的显示格式,比如“json”
- 修改对应的数据,点击“Execute”
- 回到浏览器查看数据应该为修改之后的response的信息
五、多表联查
分类:内连接、外连接、交叉连接
5.1. 初始定义表结构
create table customer(id int primary key auto_increment,name varchar(20),city varchar(20));
create table orders(id int primary key auto_increment,good_name varchar(20),price float(8,2),customer_id int);
insert into customer (name,city) values('李老师','东北');
insert into customer (name,city) values('崔老师','山西');
insert into customer (name,city) values('张老师','内蒙');
insert into customer (name,city) values('闫老师','天津');
insert into orders(good_name,price,customer_id) values('电脑',59,1);
insert into orders(good_name,price,customer_id) values('笔记本',88,2);
insert into orders(good_name,price,customer_id) values('吹风机',99,1);
insert into orders(good_name,price,customer_id) values('香水',300,3);
insert into orders(good_name,price,customer_id) values('牛奶',100,6);
5.2.交叉查询
交叉查询,又叫笛卡尔积查询,会将左表和右表的信息,做一个乘积将所有信息查询出来,会产生临时表,比较占用内存,生成的记录数=表1 X表2
select * from customer,orders;
select * from customer cross join orders;
5.3. 内连接查询
内连接,inner join on 查询两张表,设定条件,将两张表中对应的数据查询出来
不会产生笛卡尔积,不会产生临时表,性能高
select * from customer c inner join orders o on c.id=o.customer_id;
select * from customer,orders where customer.id=orders.customer_id;
select * from customer c,orders o where c.id=o.customer_id;
5.4. 左外连接
左外连接 left join on 设定条件,将两张表对应的数据查询出来,同时将左表自己没有关联的数据也查询出来
注意:join前面是左,后面是右
select * from customer c left join orders o on c.id=o.customer_id;
5.5. 右外连接
右外连接 right join on 设定条件,将两张表对应的数据查询出来,同时将右表自己没有关联的所有数据查询出来
select * from customer c right join orders o on c.id=o.customer_id;
5.6. 联合查询
select * from customer left join orders on customer.id=orders.customer_id
having price>20;
网友评论