软件测试web⾃动化项⽬实战——TPshop开源商城系统
⾃动化测试流程
⽬标
1.  熟悉⾃动化测试的流程
1. ⾃动化测试的流程
1. 需求分析
2. 挑选适合做⾃动化测试的功能
3. 设计测试⽤例
4. 搭建⾃动化测试环境 [可选]
5. 设计⾃动化测试项⽬的架构 [可选]
6. 编写代码
7. 执⾏测试⽤例
8. ⽣成测试报告并分析结果
项⽬介绍
1. 项⽬介绍
项⽬名称
TPshop开源商城系统
项⽬描述
TPshop是⼀个电⼦商务B2C电商平台系统,功能强⼤,安全便捷。适合企业及个⼈快速构建个性化⽹上商城。
包含PC+IOS客户端+Adroid客户端+微商城,系统PC+后台是基于ThinkPHP MVC构架开发的跨平台开源软件,设计得⾮常灵活,具有模块化架构体系和丰富的功能,易于与第三⽅应⽤系统⽆缝集成,在设计上,包含相当全⾯,以模块化架构体系,让应⽤组合变得相当灵活,功能也相当丰富。
项⽬架构
⽤例设计
⽬标
掌握如何编写⾃动化测试⽤例⽂档
编写⾃动化测试⽤例的原则
⾃动化测试⽤例⼀般只实现核⼼业务流程或者重复执⾏率较⾼的功能。
⾃动化测试⽤例的选择⼀般以“正向”逻辑的验证为主。
不是所有⼿⼯⽤例都可以使⽤⾃动化测试来执⾏。
尽量减少多个⽤例脚本之间的依赖。
⾃动化测试⽤例执⾏完毕之后,⼀般需要回归原点。
2. 编写测试⽤例
项⽬搭建
⽬标
1.  掌握如何进⾏⾃动化测试框架的搭建
1. 初始化项⽬
1.1 新建项⽬
项⽬名称:webAutoTestTPshop
1.2 创建⽬录结构、
1.1 安装依赖包
安装  selenium  包
安装  parameterized  包添加  HTMLTestRunner
初始化代码
封装驱动⼯具类
封装PO基类,定义  BasePage  和  BaseHandle
推荐学习:
web⾃动化测试-⿊马头条ui页⾯实现登录
完整视频:yun.itheima/open/494.html?2012stt
配套资料:pan.baidu/s/19z7JdxyvCAugEcqrvKeVNA 提取码:6bb1
编写代码
⽬标
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 ⽰例代码
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24import  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  =Logger()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⽣成测试报告
1 2 3 4report_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)