自动化测试流程
测试流程:
用例文档
需求分析
用例编写
用例评审
执行用例
发现bug 的话,提交bug
回归bug
总结
自动化测试流程:
- 需求分析 ——
- 挑选适合做自动化测试的功能
- 设计测试用例 —— 在后面加个是否自动化
- 搭建自动化测试环境(可选)
- 设计自动化测试项目的架构(可选)—— 架构就是 po + 数据驱动 + log
- 编写代码
- 执行测试用例
- 生成测试报告并分析结果
自动化在手工测试之后(功能测试)执行,可以用之前的用例
实际项目流程
- 将功能用例转化为自动化用例(在功能用例模板后面新增一列,是否自动化)
- 搭建自动化测试环境(本机依赖的环境 python pycharm 浏览器 浏览器驱动、selenium parameterized )
- 搭建自动化框架 po模式 +数据驱动 +log +报告
- 编写代码
- 执行用例
- 生成报告、分析 log
项目
项目介绍
后台服务指的是 软件平台搭建起来后,安装在某个电脑上,要启动某个服务
自动化涉及的模块
- 登录
- 购物车
- 订单
- 支付
自动化测试结构
- base
- page
- scripts
- tool
- data
- log
- image 失败截图
- report 测试报告
测试用例
登录用例分析:
- 正确用户名+正确密码 +正确验证码 预期:登陆成功+跳转到个人主页
- 用户名为空 + 正确密码 + 正确验证码 预期结果 用户名不能为空!
- 正确用户名 + 空密码 +验证码 预期:密码不能为空
- 正确用户名 +正确密码 +空验证码 预期:验证码不能为空
- 用户名不存在 +正确密码 +正确验证码 预期:账号不存在
- 用户名格式不正确 +正确密码 +正确验证码 预期:账号格式不匹配
- 正确用户名 +错误密码 +正确验证码 预期:密码错误
- 正确用户名 +正确密码 +错误验证码 预期 :验证码错误
定义数据文件
- 定义存放测试数据的目录:data
- 分模块定义数据文件:login.json cart.json order.json
- 根据业务飙血用例数据
测试数据参数化
修改测试脚本,使用 parameterized
日志收集
logging 模块实现日志的收集
import logging.handlers
import os
# 工程目录
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
def init_log_config():
"""
初始化日志配置
"""
# 日志输出格式
fmt = "%(asctime)s %(levelname)s [%(filename)s(%(funcName)s:%(lineno)d)] - %(messag
e)s"
# 创建日志器
logger = logging.getLogger()
logger.setLevel(logging.INFO)
# 创建格式化器
formatter = logging.Formatter(fmt)
# 输出到控制台
sh = logging.StreamHandler()
sh.setFormatter(formatter)
logger.addHandler(sh)
# 输出到文件,每日一个文件
log_path = os.path.join(BASE_DIR, "log", "tpshop.log")
fh = logging.handlers.TimedRotatingFileHandler(log_path, when='MIDNIGHT', interval=1
, backupCount=3)
fh.setFormatter(formatter)
logger.addHandler(fh)
生成测试报告
使用HTML TestRunner 生成测试报告
report_file = "./report/report{}.html".format(time.strftime("%Y%m%d-%H%M%S"))
with open(report_file, "wb") as f:
runner = HTMLTestRunner(f, title="TPshop商城自动化测试报告", description="Win10.Fire
fox")
runner.run(suite)