还在发愁项目去哪找?软件测试企业级Web自动化测试实战项目

news2024/11/16 10:54:32

今天给大家分享一个简单易操作的实战项目(已开源)

项目名称

ET开源商场系统

项目描述

ETshop是一个电子商务B2C电商平台系统,功能强大,安全便捷。适合企业及个人快速构建个性化网上商城。

包含PC+IOS客户端+Adroid客户端+微商城,系统PC+后台是基于ThinkPHP MVC构架开发的跨平台开源软件,设计得非常灵活,具有模块化架构体系和丰富的功能,易于与第三方应用系统无缝集成,在设计上,包含相当全面,以模块化架构体系,让应用组合变得相当灵活,功能也相当丰富。

实现目标

1. 需求分析

2. 挑选适合做自动化测试的功能

3. 设计测试用例

4. 搭建自动化测试环境 [可选]

5. 设计自动化测试项目的架构 [可选]

6. 编写代码

7. 执行测试用例

8. 生成测试报告并分析结果

项目架构

用例设计

掌握如何编写自动化测试用例文档

编写自动化测试用例的原则

自动化测试用例一般只实现核心业务流程或者重复执行率较高的功能。

自动化测试用例的选择一般以“正向”逻辑的验证为主。

不是所有手工用例都可以使用自动化测试来执行。

尽量减少多个用例脚本之间的依赖。

自动化测试用例执行完毕之后,一般需要回归原点。

编写测试用例

项目搭建

1.新建项目

项目名称:webAutoTestETshop

2.创建目录结构

安装 selenium 包

安装 parameterized 包添加 HTMLTestRunner

初始化代码

封装驱动工具类

封装PO基类,定义 BasePage 和 BaseHandle

编写代码

目标

1. 掌握如何采用PO模式的分层思想对页面进行封装

2. 掌握如何使用UnitTest管理项目中的测试用例

抽取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生成测试报告

数据驱动

定义数据文件

定义存放测试数据的目录,目录名称:data

分模块定义数据文件

登录模块:login.json购物车模块:cart.json订单模块:order.json

1. 根据业务编写用例数据

1.2测试数据参数化

修改测试脚本,使用 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)

生成测试报告

使用HTMLTestRunner生成测试报告

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="ET商城自动化测试报告", description="Win10.Fire

fox")

runner.run(suite)

福利

鉴于篇幅所限,无法把整个项目一一详细阐述,需要这个web自动化测试项目的朋友可以留言昂

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/439187.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java语法理论和面经杂疑篇《十. 反射机制》

目录 1. 反射(Reflection)的概念 1.1 反射的出现背景 1.2 反射概述 1.3 Java反射机制研究及应用 1.4 反射相关的主要API 1.5 反射的优缺点 2. 理解Class类并获取Class实例 2.1 理解Class 2.1.1 理论上 2.1.2 内存结构上 2.2 获取Class类的实例(四种方法) 2.3 哪些类…

设计模式:创建者模式 - 原型模式

文章目录 1.概述2.结构3.实现4.案例5.使用场景6.扩展(深克隆) 1.概述 用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象。 2.结构 原型模式包含如下角色: 抽象原型类:规定了具体…

nodejs+vue宠物商城健康医院挂号服务管理系统python+java+php

在前台,首先提供一个界面清晰、导航明确的首页,无论是会员还是游客都可以访问。游客通过首页查看该网站所要具备的功能,以及对应的周边商城信息,特别在周边商城模块,需要明确的进行介绍,突出周边商城特色和…

如何主动增加自己的开源项目star数的方法汇总

本篇文章主要讲解,通过自媒体、短视频、网络平台等渠道形式增加自己的开源项目的曝光度以增加star数的方法。 作者:任聪聪 日期:2023年4月20日 开源项目的star数在某些找工作的情况下是有一定的加分的,故此价值是一定的。但是自己…

arm64异常向量表

arm64异常向量表 1 arm64异常向量表2 linux arm64异常向量表3 kernel_ventry宏4 异常向量表的保存4. VBAR_ELx寄存器4.2 __primary_switched4.3 __primary_switched 1 arm64异常向量表 When an exception occurs, the processor must execute handler code which corresponds t…

电力系统谐波影响及治理

1.谐波 众所周知,理想的电力系统向用户提供的是一个恒定工频的正弦波形电压,但是由于各种原因,使这种理想状态在实际中无法存在。当正弦波电压施加在非线性电路上时,电流就变成非正弦波,非正弦电流在电网阻抗上产生压…

机器学习:基于逻辑回归和高斯贝叶斯对人口普查数据集的分类与预测

机器学习:基于逻辑回归和高斯贝叶斯对人口普查数据集的分类与预测作者:i阿极 作者简介:Python领域新星作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!👍👍👍 📜📜📜如果有小伙伴需要…

【python】采集每日必看黄色软件数据~

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 环境使用: Python 3.8 Pycharm 模块使用: requests >>> pip install requests re csv 安装模块:win R 输入cmd 输入安装命令 pip install 模块名 如果出现爆红 可能是因为 网络连接超时 切换国内…

【云原生】Dockerfile制作WordPress镜像,实现compose编排部署

文章目录 👹 关于作者前言环境准备目录结构 dockerfile制作镜像yum 脚本Dockerfile-mariadb 镜像Dockerfile-service 镜像docker compose 编排 提升✊ 最后 👹 关于作者 大家好,我是秋意临。 😈 CSDN作者主页 😎 博客…

谷歌Colab云端部署Stable Diffusion 进行绘图

系列文章目录 本地部署Stable Diffusion教程,亲测可以安装成功 Stable Diffusion界面参数及模型使用 文章目录 系列文章目录前言一、Colab是什么?二、操作步骤1.找到对应的脚本2.在谷歌Colab里执行脚本3.装载想要的模型4.开始绘图 前言 在之前的博客里…

设计模式:创建者模式 - 工厂模式

文章目录 1.概述2.简单工厂模式(非23种)2.1 结构2.2 实现2.3 优缺点2.4 扩展 3.工厂方法模式3.1 概念3.2 结构3.3 实现3.4 优缺点 4.抽象工厂模式4.1 概念4.2 结构4.3 实现4.4 优缺点4.5 使用场景 5.模式扩展6.JDK源码解析-Collection.iterator方法 1.概…

【Linux】线程安全——补充|互斥、锁|同步、条件变量

文章目录 一、知识补充线程的ID局部存储验证Thread.hpp——线程的封装 二、线程安全问题三、Linux线程互斥互斥相关概念互斥量mutexmutex的使用全局锁的使用局部锁的使用 mutex的理解Mutex.hpp——mutex的封装可重入VS线程安全死锁 四、Linux线程同步条件变量条件变量接口理解条…

工序流转二维码的应用和制作方法

很多中小型生产企业还在使用纸制的“工序流转卡”,每天交给专员人工录入到电脑上,不仅费时费力,还容易出错,更重要的是管理员不能实时掌握各个订单的进展情况,因此经常会发生订单延期交付的情况,给企业带来…

centos7.9系统部署NFS详细流程—2023.04

文章目录 NFS与RPC关系前提关闭防火墙和selinux安装 NFS 和 RPC测试取消挂载 NFS与RPC关系 简单点可以这么理解,RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。 NFS(Network File System)即网络文件…

Python数据分析项目实战

现成案例分享 Python数据分析:股票数据分析案例 步骤: 准备数据可视化数据、审查数据处理数据根据ACF、PACF定阶拟合ARIMA模型预测 作者:python分享站 链接:https://www.zhihu.com/question/280744341/answer/1651341817 来源&…

Windows下载redis

下载微软的 Redis和配置 Windows下载redis1,下载redis2,解压压缩包3,启动Redis临时服务4,启动Redis客户端测试连接5, Redis配置 (可选)1, 配置系统环境变量2,添加Redis服务3&#xf…

数据结构——排序(5)

作者:几冬雪来 时间:2023年4月14日 内容:数据结构排序内容讲解 目录 前言: 1.非递归归并排序: 2.越界情况: 3.计数排序: 结尾: 前言: 在上一篇博客中我们对归…

硬件语言Verilog HDL牛客刷题day10 华W部分 和 DJ部分

1. VL63 并串转换 1.题目: 设计一个模块进行并串转换,要求每四位d输为转到一位dout输出,输出valid_in表示此时的输入有效。 2.解题思路 2.1 计数记录输出的位数。 2.2 数据 有一个延时。 2.3 思路就是 搞一个寄存器存储数据,然后…

【蓝桥系列】为什么不会「输入输出」,你一道题都做不出来?(输入输出模板)

欢迎各位旅行者,来到小蓝の蓝桥城! 全文目录 📖第一幕 「藏宝地图」 🌼 输入 🌱输入一行 🌱输入多行 🌼 输出 🌱输出 一个数 🌱输出 一维列表 🌱输出…

TCP知识

计算机网络模型 OSC(Open System Interconnect)采用分层的结构化技术,共分七层:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。 TCP/IP模型共分四层:链路层&…