- 项目主流程是什么?
- 测试周期是多少?
- 测试流程是什么?
搭建电商平台
- 重装LInux 系统 使用centos 7.9 操作系统
下载宝塔 参考官网: https://www.bt.cn/bbs/thread-19376-1-1.html
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
完成 根据提示,打开浏览器 输入 外网地址,输入用户名和密码
打开浏览器 输入账号和密码进行登录
登录成功之后,安装
一键部署电商平台
安装
设置对应的信息
安装成功之后,根据提示,打开对应的页面地址
宝塔开启Mysql 端口远程访问
- 设置权限为所有人
- 开启mysql 3306端口
放行 3306 端口
数据库配置
数据库连接信息
主机: 49.233.108.117
端口:3306
用户名:shopxo
密码:fanmao55..
show tables;
-- 查看最大的连接数
show variables like "max_connections";
-- 设置最大链接数
set global max_connections = 2000;
-- 1. 查询所有的用户信息 sxo_user
select * from sxo_user;
-- 2. 统计共有多少个用户
SELECT count(*) from sxo_user;
-- 3. 查看所有订单信息 sxo_order
select * from sxo_order;
-- 4. 查看每个人的订单信息,没有订单显示为null
select username,order_no, total_price from sxo_user
left JOIN sxo_order
ON sxo_user.id = sxo_order.user_id
-- 5查看订单号,用户名,用户手机号码,订单时间,订单金额
select order_no, username, mobile, sxo_order.add_time, total_price from sxo_user
INNER JOIN sxo_order
ON sxo_user.id = sxo_order.user_id
-- 5查看订单号,用户名,用户手机号码,订单时间,订单金额, 收货地址
整理常见的问题
- 什么时候用数据库? 你用数据库都干什么?
在网站进行操作,比如下订单,有订单状态。订单有不同的状态,比如我在测试的过程中,取消了订单,但是在查看订单详情的时候,订单的状态并没有更新。这是一个bug。
作为测试人员,提交bug,问题:bug 提交给前端还是后端。
需要定位Bug—>通过查看数据库—> 校验数据库中的数据。
在做一些统计相关的测试的时候,比如查看一些实时的数据
这些数据都是从数据库中来的, 这些数据的校验 主要是从数据库中来的,这个时候也需要我们去数据库中查看对应的数据。
图表测试 主要测试方法就是从数据库中提取数据 再在前端界面上显示出来, 查看图表中数据是否与数据库中的数据保持一致。
总结:
在测试过程中, 只要是涉及到一些数据校验相关的功能测试,都可以去数据库中进行查询。
多表联查相关操作
-- 5查看订单号,用户名,用户手机号码,订单时间,订单金额, 收货地址
select CONCAT(province_name,"-",city_name,"-",county_name,"-",address) as 收货地址 from sxo_order_address;
select order_no, username, mobile, sxo_order.add_time, total_price,CONCAT(province_name,"-",city_name,"-",county_name,"-",sxo_order_address.address) as 收货地址 from sxo_user
INNER JOIN sxo_order
ON sxo_user.id = sxo_order.user_id
INNER JOIN sxo_order_address
ON sxo_order_address.order_id = sxo_order.id AND sxo_order_address.user_id = sxo_user.id;
时间相关函数的时候
-- 当天的订单总数,订单总额
-- UNIX_TIMESTAMP(CURRENT_DATE) 今天时间的00:00:00
-- (UNIX_TIMESTAMP(CURRENT_DATE+1)-1) 今天时间的23:59:59
Select count(*), SUM(total_price) FROM sxo_order
WHERE add_time BETWEEN UNIX_TIMESTAMP(CURRENT_DATE) AND (UNIX_TIMESTAMP(CURRENT_DATE+1)-1);
分组查询,临时表,连接查询,子查询
select DISTINCT(销售数量) FROM
(
SELECT SUM(buy_number) as 销售数量,title FROM
(select sxo_order.id,goods_id,title, buy_number from sxo_order
INNER JOIN sxo_order_detail
ON sxo_order.id = sxo_order_detail.order_id
WHERE sxo_order.pay_status = 1
) as tmpdata
GROUP BY title
ORDER BY 销售数量 DESC
) as tmpddd
LIMIT 10
-- 8. 统计消费最高的人员信息
SELECT username from sxo_user
INNER JOIN
(
SELECT user_id,sum(total_price) from sxo_order
WHERE pay_status = 1
GROUP BY user_id
HAVING sum(total_price) = (
select max(total) from
(SELECT user_id,sum(total_price) as total from sxo_order
WHERE pay_status = 1
GROUP BY user_id) as tmpdata)
) as tmpddd
on tmpddd.user_id = sxo_user.id
如何提交bug
下面有如下需求
后台管理界面中
订单总数,收入总计的数据来源数据库, sxo_order 表中
统计的订单总量为 order 表中订单总数
订单金额为 订单中每个订单金额的总和。
在数据库中进行查询
select count(*), sum(total_price) from sxo_order;
结果发现,查询出来的数据,与页面上显示出来的数据不一致。准备提交bug。提交给谁呢??? 🤣
常用的定位的bug
- 抓包定位—> 查看前端发出去的请求 看前端的请求。
发现没有专门API接口,直接返回一个html 页面。
- 查看服务器的日志
a. 日志文件目录为 /www/wwwroot/shopxo/runtime/log
b. 查看日志 使用 tail -f 命令跟上 具体日志路径
经过一系列的从日志文件中进行分析,发现执行的sql语句与我们需求中定义的查询不一致。
- 所以,执行的sql语句有问题,要给开发后台管理页面的统计数据的开发人员提出bug。
作业
使用数据库
Mysql 数据库连接:
外网地址: rm-bp188nr95fk4l9545ao.mysql.rds.aliyuncs.com
外网端口: 3306 (默认端口)
用户名: fanmao55
密码: ABCfanmao55
数据库: projects
select `ID(身份证号)`,`NO(客户号)` from `811` where `NAME(姓名)` like "李四"
select `811`.`NO(客户号)`,`NAME(姓名)`,`ID(身份证号)` from `811` INNER JOIN `812` on `811`.`NO(客户号)`=`812`.`NO(客户号)` where `DEPOSIT(存款金额)`>=1000
SELECT `COUNTRY(国家)`,COUNT(`NO(客户号)`) FROM `811` GROUP BY `COUNTRY(国家)`
SELECT SUM(`CREDIT(信用卡金额)`),
CASE
WHEN YEAR(`BIRTH(出生年月)`)BETWEEN 1980 AND 1989 THEN "80后"
when YEAR(`BIRTH(出生年月)`)between 1990 and 1999 then "90后"
END AS 年龄段
from `811` INNER JOIN `812` on `811`.`NO(客户号)`=`812`.`NO(客户号)`
GROUP BY 年龄段
- 提交bug