本帖最后由 我是楠楠 于 2019-9-25 14:02 编辑
编写代码 目标 1. 掌握如何采用PO模式的分层思想对页面进行封装 2. 掌握如何使用UnitTest管理项目中的测试用例 1. 抽取PO 根据用例分析待测功能,提取页面对象 1. 定义页面对象文件 登录页:login_page.py首页:index_page.py 后台页面(个人中心页):home_page.py商品搜索页:goods_search_page.py商品详情页:goods_detail_page.py购物车页:cart_page.py 下订单页:order_page.py 订单支付页:order_pay_page.py我的订单页:my_order_page.py 1. 分别编写对象库层、操作层、业务层的代码
2. 编写测试脚本 1. 定义测试脚本文件 登录模块:test_login.py购物车模块:test_cart.py订单模块:test_order.py 3. 执行测试脚本 1. 使用unittest执行测试脚本 2. 调试代码 完善代码 目标 1. 掌握如何把数据驱动应用到项目中 2. 能够把日志收集功能应用到项目中 3. 掌握如何使用UnitTest生成测试报告 1. 数据驱动 1.1 定义数据文件 1. 定义存放测试数据的目录,目录名称:data 2. 分模块定义数据文件 登录模块:login.json购物车模块:cart.json订单模块:order.json 1. 根据业务编写用例数据
1.2测试数据参数化 修改测试脚本,使用 parameterized 实现参数化 1. 日志收集使用logging模块实现日志的收集
2.1 示例代码 [AppleScript] 纯文本查看 复制代码 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) 3. 生成测试报告 使用HTMLTestRunner生成测试报告 [AppleScript] 纯文本查看 复制代码 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) |