如何从零开始搭建公司自动化测试框架?

2023-11-20

搭建的自动化测试框架要包括API测试,UI测试,APP测试三类。以上三类其实可以简化为两类,那就是:

1)接口自动化测试框架搭建
2)UI自动化测试框架搭建。

没问题,安排,且是手把手教你如何搭建以上两类自动化测试框架。

回到这篇主题,刷到这个问题的测试人员,可能有一部分还是从事"手工测试"的,或是一些是自学测试刚入门。为了让这类读者也能有获得感,所以我将问题拆分下,分为下面4个部分:

1、为什么要搭建自动化测试框架
2、简介如何搭建API接口测试框架
3、简介如何搭建UI自动化测试框架
4、自动化测试框电子书推荐

好,抓好扶手,接下来我们开始正式介绍了。

一、为什么要搭建自动化测试框架

测试如果按照是否手工划分,可以分为“手工测试”和“自动化测试”。

“手工测试”也就是用人力来进行功能测试。相比自动化测试而言执行效率慢,可以进行探索性测试和发散性测试。

“自动化测试”主要是通过所开发的软件测试工具、脚本等来替代人工进行功能测试。相比“手工测试”,不仅能解放人力,且具有良好的可操作性、可重复性和高效率等特点。

具体来说"自动化测试"的优势如下:

(1)自动化测试具有一致性和重复性的特点,而且测试更客观,提高了软件测试的准确度、精确度和可信任度。

(2)自动化测试可以将任务自动化,能够解放人力去做更重要的工作。

(3)自动化测试只需要部署好相应的场景,如高度复杂使用场景、海量数据交互、动态响应请求等,测试就可以在无人值守的状态下自动进行,并对测试结果进行分析反馈;手工测试很难实现复杂的测试。

(4)自动化测试可以模拟复杂的测试场景完成人工无法完成的测试,如负载测试、压力测试等。

(5)软件版本更新迭代后需要进行回归测试,自动化测试有助于创建持续集成环境,使用新构建的测试环境快速进行自动化测试

可见,自动化测试优势非常多,所以最近几年企业疯狂招聘自动化测试人员。高薪的自动化测试不断的涌入,逐步替代低薪的手工测试,直接后果就是测试最近几年的平均薪资一路上涨。

图片


△ 截图来源于职友集,显示最近6年测试薪资一路上涨

自动化测试具体实施流程如下图所示:

图片


自动化测试实施流程图

从上图可以看出,要实施自动化测试是需要搭建测试环境的,也就是要搭建测试框架。

这就是为什么我们要学习"接口自动化测试框架搭建"和"Ui自动化测试框架搭建"的根本原因。

ps:不想从零搭建,想利用现在主流的自动化测试框架,可以狠狠点击这篇文章:

《Android 手机自动化测试工具有哪几种?128 赞同 · 16 评论回答》
https://www.zhihu.com/question/19716849/answer/2930155323

二、简介如何搭建API接口测试框架

在当前企业实际测试技能应用中,功能测试和接口测试应用最广泛。但相比功能测试,接口测试缺口却非常大。且接口测试在测试领域地位非常高,是软件测试工程师初级和中级分界线。

所以我们先来将接口测试框架的搭建,搭建步骤列出如下:

1)选择开发语言
2)选择Pytest作为测试框架
3)设置测试报告
4)选择代码仓库
5)部署持续集成方案
附:两套详细学习视频推荐

步骤步骤讲完之后,我们开始详细阐述每一步该如何操作(尽力能让你照着步骤搭建出来)。

1、选择一门语言

语言我们选择Python。因为相比Java,更容易入门。

python是一门简单易学,容易理解的计算机编程语言。不仅有很多的学习书籍,还有很多的学习视频。Python也早已经成为tiobe语言的No1。

图片

若没有学过Python语言,推荐黑马学习资料如下:

《10天带你玩转python2020版》
本视频b站链接:https://www.bilibili.com/video/BV1jZ4y1s7LC

2、选择PyTest作为测试框架

PyTest是一个非常成熟的全功能的Python测试框架。官方文档详细介绍了它的特点

· 对失败断言语句会进行详细信息展示(无需记住self.assert*名称)
· 自动发现测试模块和功能
· 非常方便管理小型或参数化测试项目
· 可以开箱即用运行单元测试和测试套件
· 丰富的插件架构,超过 800 多个外部插件和蓬勃发展的社区

图片


pytest框架使用5步骤​​​​​​​

#PyTest目录结构apiTestFramework # 项目名称 ├── api # 定义封装被测系统的接口 ├── script # 定义测试用例脚本 ├── data # 存放测试数据文件 ├── report # 存放生成的测试报告 ├── common # 存放通用工具类 ├── config.py # 定义项目的配置信息 └── pytest.ini # pytest配置文件

3. 测试报告

执行完测试用例后,可以以HTML(网页)方式将执行结果生成报告。我们选择pytest-html。它是PyTest框架生成HTML测试报告的插件。使用方便。

第一步安装:pip install pytest-html

第二步修改配置:addopts = -s --html=report/report.html

轻松搞定。

4. 代码仓库

代码管理肯定是首选git喽。Git 分布式版本控制系统,实现版本控制和多人协同。

图片

​​​​​​​
# 常见的代码托管平台:Github     国外的基于git实现在线代码托管的仓库(企业版收费)     官网:https://github.com/ Gitee     码云,是开源中国免费提供(企业版收费)    官网:https://gitee.com/ Gitlab     类似Github,一般用于企业内部搭建git私服

5. 持续集成方案

图片

Jenkins是基于Java开发的一种开源、跨平台的持续集成工具。他能够持续自动构建/测试软件项目,实现监控定时执行的任务。

我们简单来说明一下jenkins的核心构建步骤。

1) 搭建Jenkins环境

图片

2) 创建任务之后设置源码管理

图片

3) 输入构建命名

图片

4)设置定时构建

图片

5)设置测试报告路径

图片

6)设置构建后发送邮件

图片

7)构建并查看结果

图片

PS: 再详细的文字也不如视频来的生动,接下来推荐两个接口测试框架相关的详细视频:

1)《Python实现接口自动化测试视频》
本视频b站链接:https://www.bilibili.com/video/BV1uz411q7Pg

2)《python实现头条项目接口自动化测试实战》
本视频b站链接:https://www.bilibili.com/video/BV1va4y1i76B

三、手把手教:如何搭建UI自动化测试框架

UI自动化测试框架是有很多的。我们以pytest+selenium+allure+PO模式为例子给大家简要说明一下。搭建步骤有下面几步:

1)工具环境
2)依赖包
3)工程目录
4)脚本书写步骤

1、工具环境

a)  Python解释器b)  Pycharm编码工具c)  Web端:d)  浏览器e)  浏览器驱动程序

2. 依赖包​​​​​​​

a)  Seleniumb)  pytestc)  pytest-html

3. 工程目录​​​​​​

a)  base        基类python packageb)  page        PO封装python packagec)  case       测试用例python packaged)  data         数据文件Directorye)  report      测试报告Directoryf)  log           日志文件Directoryg)  screenshot      截图文件Directoryh)  config.py       项目配置信息文件i)  utils.py        工具类文件

4. 脚本书写步骤

a ) 初始化代码

图片

b ) 一个测试用例脚本编写过程

图片

c ) 引入数据驱动

图片

d ) 引入日志

图片

e ) 生成测试报告

图片

PS: 若没有基础知识铺垫,再详细的文字也可能会让人不知如何下手,接下来推荐多个UI自动化测试框架视频,按照下列视频搭建即可。

--------------Web类自动化框架相关视频---------------

1)《web自动化入门实战》 
本视频b站链接:https://www.bilibili.com/video/BV1ED4y197Nd

2)《8天web自动化入门教程》 
本视频b站链接:https://www.bilibili.com/video/BV1eZ4y1s7BY

--------------App类自动化框架相关视频---------------

1)《0基础入门移动自动化Appium框架》 
本视频b站链接:https://www.bilibili.com/video/BV11p4y197HQ

2)《Appium进行IOS真机自动化测试》
本视频b站链接:https://www.bilibili.com/video/BV1tT4y137bD

在介绍“API接口测试框架”和”UI自动化测试框架”时,我们都反复提到了Pytest测试框架,那有这个框架的学习视频吗?当然有,看下方截图:

图片

Pytest框架学习视频分享如下:
《6天UI自动化_Pytest框架学习-2021版》 
本视频b站链接:https://www.bilibili.com/video/BV18Q4y1y7v3

四、自动化测试框架电子书推荐

这一本书籍相信对你的帮助应该很大--《Web接口开发与自动化测试》

图片

下方有电子书链接分享

附:本电子书免费下载地址:
http://bbs.itheima.com/thread-514629-1-1.html

再推荐一本关于UI自动化测试的书籍--《Python实现Web UI自动化测试实战》

此书主要介绍如何基于Python使用Selenium、unittest、Pytest、GitLab、Jenkins等工具实现Web UI自动化测试,以帮助提升测试水平。

图片

这本书的电子版实在是找不到,若找到的同学也欢迎分享下,可私信我

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从零开始搭建公司自动化测试框架? 的相关文章

  • 新入职一个00后卷王,每天加班到2点,太让人崩溃了····

    在程序员职场上 什么样的人最让人反感呢 是技术不好的人吗 并不是 技术不好的同事 我们可以帮他 是技术太强的人吗 也不是 技术很强的同事 可遇不可求 向他学习还来不及呢 真正让人反感的 是技术平平 却急于表现自己的人 每天加班到12点 在老
  • 软件测试|Pydantic详细介绍与基础入门

    简介 Pydantic 是一个强大的 Python 库 用于数据验证和解析 特别是用于处理 JSON 数据 它的主要目标是使数据验证和解析变得简单 直观和可维护 本文将介绍 Pydantic 的基础知识 包括如何定义模型 验证数据以及处理错
  • 软件测试|深入了解Python中的super()函数用法

    简介 Python中的super 函数是一种强大的工具 用于在子类中调用父类的方法 它在面向对象编程中非常有用 可以让你轻松地扩展和重用现有的类 本文将详细介绍super 函数的用法 并提供一些示例来帮助你更好地理解它的功能 什么是supe
  • 软件测试|Python中如何提取列表中索引为奇数的元素

    简介 在Python中 我们经常需要从列表中提取特定位置的元素 如果我们想要提取列表中索引为奇数的元素 可以使用一些简单的方法来实现这一目标 本文将介绍如何在Python中提取列表中索引为奇数的元素 并提供示例代码来帮助大家更好地理解这个过
  • 软件测试|Selenium StaleElementReferenceException 异常分析与解决

    简介 Selenium 是一个流行的自动化测试工具 用于模拟用户与网页交互 然而 当我们在使用 Selenium 时 可能会遇到一个常见的异常 即 StaleElementReferenceException 这个异常通常在我们尝试与网页上
  • 软件测试|pycharm关联GitHub的详细步骤

    简介 GitHub 是全球最大的开源代码托管平台之一 而 PyCharm 是一款强大的 Python 集成开发环境 将两者结合使用 可以提高团队协作和代码管理的效率 本文将详细介绍如何在 PyCharm 中管理 GitHub 账号 包括如何
  • 软件测试|使用matplotlib绘制多种柱状图

    简介 在数据可视化领域 Matplotlib是一款强大的Python库 它可以用于创建多种类型的图表 包括柱状图 本文将介绍如何使用Matplotlib创建多种不同类型的柱状图 并提供示例代码 创建基本柱状图 首先 让我们创建一个基本的柱状
  • 软件测试|教你使用Python下载图片

    前言 我一直觉得Windows系统默认的桌面背景不好看 但是自己又没有好的资源可以进行替换 突然我一个朋友提醒了我 网络上的图片这么多 你甚至可以每天换很多个好看的背景 但是如果让我手动去设置的话 我觉得太麻烦了 我不如使用技术手段将图片下
  • 跨平台UI自动化框架:Airtest,游戏开发和应用测试的利器

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 一篇文章带你了解Python常用自动化测试框架——Pytest

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • msyql 异常,别干着急,70%的问题都在这里!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 摸爬滚打多年的打工人,总结了三条职场真理,绝不假大空!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 月薪2W的软件测试工程师,到底是做什么的?

    在生活中 我们常常会遇到以下几种窘迫时刻 准备骑共享单车出行 却发现扫码开锁半天 车子都没有反应 手机导航打车 却发现地图定位偏差很大 司机总是跑错地方 买个水 却遭遇自动售货机吐币 或者不找零钱 好不容易休息打个游戏 却一直出现卡顿 闪退
  • Python常用的自动化小脚本!

    一 list转json string转json 可以使用Python内置的 json 模块将列表 List 和字符串 String 转换成JSON格式 List转JSON假设我们有一个列表 List my list apple banana
  • tcpdump抓包

    tcpdump抓包 基本概念 1 类型的关键字 host 指明一台主机 如 host 10 1 110 110 net 指明一个网络地址 如 net 10 1 0 0 port 指明端口号 如 port 8090 2 确定方向的关键字 sr
  • 程序员找工作难!拿到外包公司的 offer 我应该去么?

    引言 前一阵子有一个帖子引起了非常广泛的讨论 描述的就是一个公司的外包工作人员 加班的时候因为吃了公司给员工准备的零食 被公司的HR当场批评 这个帖子一发出来 让现在测试行业日益新增的外包公司备受关注 那么外包公司和非外包公司有什么样的不一
  • 15:00面试,15:06就出来了,问的问题有点变态。。。

    从小厂出来 没想到在另一家公司又寄了 到这家公司开始上班 加班是每天必不可少的 看在钱给的比较多的份上 就不太计较了 没想到9月一纸通知 所有人不准加班 加班费不仅没有了 薪资还要降40 这下搞的饭都吃不起了 还在有个朋友内推我去了一家互联
  • UI自动化测试之Jenkins配置

    背景 团队下半年的目标之一是实现自动化测试 这里要吐槽一下 之前开发的测试平台了 最初的目的是用来做接口自动化测试和性能测试 但由于各种原因 接口自动化测试那部分功能整个废弃掉了 其中和易用性有很大关系 另外 也和我们公司的接口业务也有关
  • Airtest自动化测试工具

    一开始知道Airtest大概是在年初的时候 当时 看了一下官方的文档 大概是类似Sikuli的一个工具 主要用来做游戏自动化的 通过截图的方式用来解决游戏自动化测试的难题 最近 移动端测试的同事尝试用它的poco库来做自动化 看样子还不错
  • 用Python实现高效数据记录!Web自动化技术助你告别重复劳动!

    自动化关键数据记录 简介 关键数据记录是 Web 自动化测试中的关键部分 它们提供了关于系统行为和执行过程的详细信息 有助于验证用例的正确性 排查问题和确保应用程序的质量 行为日志 行为日志是一种用于记录系统或应用程序的操作和事件的技术 它

随机推荐

  • 国产化系统下操作PDF

    本文围绕使用netcore 跨平台在国产系统 麒麟和统信 操作PDF 首先netcore 需要第三方dll 在Nuget里搜索itextsharp 选择图片中 安装即可 版本写了 itextsharp 是4 16 比较靠后 但是基本功能都有
  • Android反调试方法总结以及源码实现之检测篇(一)

    好久没有更新博客了 主要是忙项目的事 今日总结一下在Android中常遇到的反调试方法 一来帮助需要之人 二来加深自己的理解 反调试在代码保护中扮演着很重要的角色 虽然不能完全阻止攻击者 但是还是能加大攻击者的时间成本 一般与加壳结合使用
  • 手写SSH2服务器连接池

    初衷 在工作中遇到一个要与远程服务器建立连接并进行上传 下载的场景 所以在课余就试着写了一个ssh2服务器连接池的小demo 仅供参考 欢迎指正 目录概要 pom文件引入依赖
  • 内网信息收集(一)

    内网信息收集 收集本机信息 拿到一台服务器权限需要收集的信息 包括操作系统 IP 是否存在杀毒软件 打过的补丁等信息 查询网络配置信息 ipconfig all Linux下使用ifconfig 查询用户列表 net user 查看本机列表
  • 《重构的时机和方法》一本值得程序员都认真读的书

    写在前面 重构的时机和方法 是一本关于软件开发中重构技术的书籍 它以独特的风格和内容优势 为读者提供了全面而易于理解的指导 帮助他们在实际项目中应用重构技术 提高代码质量和开发效率 这本书由两个不同风格的部分组成 旨在满足不同读者群体的需求
  • 预训练模型与微调

    前言 预训练模型已经火了这么久了 但作为菜本菜的我却还在用lstm 在生成任务上与同门学长用的预训练模型相比 效果差的比较明显 所以 我决定走上预训练的不归路 以下分享我的学习过程 了解模型 小说故事生成模型 万事开头难 上视频 视频我喜欢
  • 汕头大学医学院物理与计算机教研室,药剂学教研室 - 汕头大学医学院 Shantou University Medical College...

    凌凯 男 中国医学科学院 北京协和医学院 清华大学医学部 生物医学工程 医学博士 副研究员 从事生物纳米检测新技术的研究与新型纳米肿瘤药物及疗法的研究 以第一作者和通讯作者发表SCI论文8篇 以项目负责人承担国家自然科学基金青年基金项目 广
  • spring过滤器、拦截器

    文章目录 一 二者对比 二 过滤器 过滤器的分类 过滤器的作用 过滤器的实现方式 三 拦截器 拦截器的实现方式 四 二者总结 一 二者对比 实现原理不同 过滤器是基于函数回调 拦截器是基于java的反射机制的 使用范围不同 过滤器依赖与se
  • 基于python图书馆管理系统和读者系统(附完整代码以及打包好的exe文件)

    摘要 本文基于python的图书馆管理系统和读者系统 实现了登录 注册 忘记密码 书籍查询 借阅 归还 修改等功能 通过csv文件将数据存储在本地 注册时采用了邮箱验证码 模拟了现实场景 全部源代码地址见文末 如果有其他奇思妙想或者bug欢
  • 【pytorch目标检测】创新之作:Fast R-CNN算法解读

    背景 2015年 提出了Fast RCNN算法 训练步骤实现端到端 CNN 基于VGG6 Fast R CNN是基于R CNN和SPPnets进行的改进 成果 训练速度比RCNN块9倍 测试速度快乐23倍 准确率68 4 SPPnets网络
  • Python实现PDF合并工具(含源码)

    在工作中 每个月都会要遇到报账的情况 在现如今很多都是使用电子发票 获得的电子发票很多都是PDF格式 偶尔也有图片格式的 而且还是一张发票一个pdf文档 在打印贴票时 就需要一个文档一个文档的打开打印 十分的不便捷 当然也可以使用某某PDF
  • Trello中的Scrum

    Trello的用户数量近期超越了1000万的大关 它正迅速成为各色敏捷团队中流行的工具 它的简洁及在Web 移动端优秀的体验 使它从众多更复杂的解决方案中脱颖而出 赢得了更多的团队 因为Trello完全不在意用户如何使用 所以导致用户在用它
  • Mysql 基础

    判断数据库是否存在 存在就删除 drop database if exists testdb 创建数据库表的操作 create database testdb 使用数据库 use testdb 判断创建的表是否存在 存在就删除 drop t
  • 2021年12月-电子学会青少年等级考试C语言(一级)真题与解析

    2021年12月软件编程 C语言 等级考试 一级 分数 100 题数 5 时间限制 1000 ms 内存限制 65536 kB 1 输出整数部分 题目描述 输入一个双精度浮点数 输出其整数部分 输入 一个双精度浮点数f 0 lt f lt
  • PMD规则开发实战:打造自己的代码质量检测工具

    PMD介绍 介绍 PMD 安装和配置 如何安装和配置 PMD 插件以在的项目中使用 IDEA中如何使用PMD插件 Java项目中如何使用PMD PMD规则开发介绍 介绍如何编写和使用自定义 PMD 规则 SonarQube如何集成PMD S
  • Java 数据输入

    数据输入 数据输入概述 Java 提供接口用于接受控制台输入的变量 并进行相应的操作 Scanner 使用的基本步骤 导包 import java util Scanner 导包的动作必须出现在类定义的上面 创建对象 Scanner sca
  • 网易资深安卓架构师:没想到一个Handler还有中高级几种问法,论程序员成长的正确姿势

    本专栏专注分享大型Bat面试知识 后续会持续更新 喜欢的话麻烦点击一个关注 面试官 组件化如何实现 组件化与插件化的差别在哪里 该怎么选型 心理分析 面试官从架构层次 了解求职者是否用过 模块化 组件化 和插件化 在过去经验有没有运用过这些
  • 【Spring Boot 初识丨三】starter

    上一篇讲了如何构建MAVEN项目 本篇来讲一讲 starter 依赖项 Spring Boot 初识 Spring Boot 初识丨一 入门实战 Spring Boot 初识丨二 maven Spring Boot 初识丨三 starter
  • 【Android Studio 创建module】

    一 如何创建模型 一个项目里边可以有多个module 每个module对应的都是一个独立的程序 选择File菜单 gt New gt New Module gt 填写Module名称 library 一直next直到finish 给Modu
  • 如何从零开始搭建公司自动化测试框架?

    搭建的自动化测试框架要包括API测试 UI测试 APP测试三类 以上三类其实可以简化为两类 那就是 1 接口自动化测试框架搭建 2 UI自动化测试框架搭建 没问题 安排 且是手把手教你如何搭建以上两类自动化测试框架 回到这篇主题 刷到这个问