这些开源自动化测试框架,会用等于白嫖一个w
作者:黑马测试
链接:https://www.zhihu.com/question/19923336/answer/2585952461
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
随着计算机技术人员的大量增加,通过编写代码来进行测试成为一种更为高效的测试方式,由此而诞生了以计算机语言为基础的自动化测试方案,当然测试工程师需要具备代码能力。

今天我们就结合当前的主流编程语言,分别讲述java和python语言环境下各自的自动化测试框架。
今天我们就结合当前的主流编程语言,分别三种环境下各自的自动化测试框架。
一、通用自动化测试框架介绍
测试框架并不是一成不变的,事实上它就像搭积木一样,是由具有各种功能的工具组合而成,可以根据需求自由组合。下面介绍几个通用的基础工具:
1、Jenkins(可以支持java、python等大多数语言的项目)

简介:Jenkins是一个基于java语言开发的,可以取代繁杂的手动集成,用于监控持续重复工作的持续集成工具,简单说就是一个可以设置定时任务,自动执行并报告结果的工具。
优点:解放双手,极大地提高了效率,jenkins通常用来自动化执行各种任务,包括构建、测试和部署软件。
官方下载地址:Jenkins download and deployment
配套视频:《6天UI自动化2021版》密码:51es
b站链接:https://www.bilibili.com/video/BV18Q4y1y7v3
2、Selenium(是一个模拟人对web端页面操作的测试工具库)

简介:Selenium通常需要搭配chromedriver一起使用,chromedriver是Chrome浏览器驱动,是selenium 模块用来模拟打开谷歌浏览器所必须的一个文件。
优点:解放双手,Selenium+chromedriver能够驱动浏览器模拟人的操作,如鼠标单击、键盘输入等,同时也可以实现目标内容的获取和自动下载等。
官方下载地址:Downloads | Selenium
配套视频:《8天web自动化入门教程》密码:xest
b站链接:https://www.bilibili.com/video/BV1eZ4y1s7BY
3、Appium(模拟人对移动端操作的测试工具库)

Appium 内部原理
简介:appium是一个合成词,分别由“application”的前三个字母和“Selenium”的后三个字母组成,它的作用与selenium 其实一样的。appium 类库封装了标准 Selenium 客户端类库。
优点:解放双手,可以实现多点触控手势和屏幕方向等操作。可以跨平台同时支持Android、iOS。支持多种语言,java、python、php、Ruby等等。本视频b站链接:
二、Java语言下的自动化测试框架
1、Maven(Java项目构建和管理的工具)

简介:Maven一个最主要的功能在于可以方便的进行二进制库及依赖的管理
打个比方,有一个工人,去哪儿干活儿要随身携带所有的工具,说不定什么时候会用,后来,他有了一张神奇清单,上面写着他的工具名称,出去干活再也不用带沉甸甸的工具了,只要打开神奇清单,需要的工具自动就来了。
而maven对于程序员来说就是那张神奇清单,它会帮我们维护好编程所需的各种依赖。
优点:Maven 在美国是一个口语化的词语,代表专家、内行的意思,约等于北京话中的老炮儿。有老炮儿在手,干活儿不愁。
2、Testng(简化代码编写的一站式测试框架)

Testng简介:
测试方法是带有注解@Test的java方法
将测试信息添加到testng.xml文件或者build.xml
可以在suite/test/test method三个级别来执行测试方法
Testng优点:
简化代码编写,提高测试效率。
3、OkHttp

简介:OkHttp是一个当下比较流行的轻量级的网络请求框架,易用性,复用性都比较好。一般使用时,最好再对它进行再次封装,以符合具体场景的使用需求。
优点:拿来即用,不需关心底层实现,简单易上手。
4、最后根据实际场景,组合所需的各个工具,得到自动化测试框架

- java自动化接口测试:jenkins+maven+testng+okhttp
- java自动化web测试:jenkins+maven+testng+selinum
- java自动化app测试:jenkins+maven+testng+appium
三、Python语言环境下的工具
1、Pytest(非常成熟的全功能的python测试框架)

简介:类似的测试框架工具还有Python原生的unittest,但Pytest完全兼容Unitest,并且含有非常丰富的插件,能够支持简单的单元测试和复杂的功能测试和接口自动化测试。
优点:插件丰富,可以很好地和jenkins集成。
2、Requests(用于发送HTTP请求的第三方库)

简介:Requests是用于发送HTTP请求的第三方库。我们实现请求的时候并不需要实现底层的细节,只需要引入一个Requests 就可以了。类似的工具有很多,比如urllib、httplib等。
3、Allure(一款开源的,用来展示测试结果的工具)

简介:Pytest可以生成html格式的报告,但是Allure不仅可以与Pytest做集成生成美观易读的测试报告,同时可以集成到Jenkins,所以推荐使用。
优点:可以生成美观的报告,并集成到jenkins。
视频:《6天UI自动化2021版》 密码:51es
本视频b站链接:https://www.bilibili.com/video/BV18Q4y1y7v3
4、Pytest、Requests、Allure、Jenkins等工具的关系如下图

结合通用的工具,不同的自动化测试场景下对应的自动化测试框架如下:
- Python自动化接口测试:jenkins+pytest+requests+allure
- Python自动化Web测试:jenkins+pytest+selinum+allure
- Python自动化App测试:jenkins+pytest+appium+allure
四、自动化测试框架学习总结
自动化测试是测试工程师从初级到中高级的分界线,也是入职大厂的必备技能。
上文介绍了多个自动化测试框架,如果是初学者,你可能会头大:这么框架我一下子学不会啊。

别慌,其实目前业内主要使用的接口自动化测试,Web及App自动化测试是作为辅助,所以你先花精力掌握接口自动化测试框架就可以了。
至于接口自动化测试框架 选择Java的【Jenkins+Maven+Testng+Okhttp】还是Python的【Jenkins+Pytest+Requests+Allure】可以根据自己的习惯和公司的语言环境来选择
总结
如果你对此文有任何疑问,如果你也需要接口项目实战,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入我们,加入方式在文章的最后面
自动化测试相关教程推荐:
2023最新自动化测试自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂!!_哔哩哔哩_bilibili
2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibili
测试开发相关教程推荐
2023全网最牛,字节测试开发大佬现场教学,从零开始教你成为年薪百万的测试开发工程师_哔哩哔哩_bilibili
postman/jmeter/fiddler测试工具类教程推荐
讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程,学jmeter接口测试一套教程就够了!!_哔哩哔哩_bilibili
2023自学fiddler抓包,请一定要看完【如何1天学会fiddler抓包】的全网最详细视频教程!!_哔哩哔哩_bilibili
2023全网封神,B站讲的最详细的Postman接口测试实战教学,小白都能学会_哔哩哔哩_bilibili
总结:
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。
如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步
在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。
我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,
测试开发视频教程、学习笔记领取传送门!!

相关文章:
这些开源自动化测试框架,会用等于白嫖一个w
作者:黑马测试 链接:https://www.zhihu.com/question/19923336/answer/2585952461 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 随着计算机技术人员的大量增加,通过编写代码来…...
代码随想录第三十六天——无重叠区间,划分字母区间,合并区间
leetcode 435. 无重叠区间 题目链接:无重叠区间 方法一:按右边界排序 按照右边界排序,从左向右记录非交叉区间的个数。最后用区间总数减去非交叉区间的个数就是需要移除的区间个数。此时问题转化为求非交叉区间的最大个数。 版本一&#…...
Python数据分析:入门到实践
一、引言 (用手机写的,明天重新排版。) 在当今数据驱动的时代,数据分析已经成为各行各业不可或缺的一部分。Python作为一种高效、易学的编程语言,在数据分析领域具有广泛的应用。本文将带你从Python数据分析的入门知…...
第7章-第9节-Java中的Stream流(链式调用)
1、什么是Stream流 Lambda表达式,基于Lambda所带来的函数式编程,又引入了一个全新的Stream概念,用于解决集合类库既有的鼻端。 2、案例 假设现在有一个需求, 将list集合中姓张的元素过滤到一个新的集合中;然后将过滤…...
创建一个矩形中有两个三角形
#include <glad/glad.h> #include <GLFW/glfw3.h>#include <iostream>float vertices[] {// 第一个三角形0.5f, 0.5f, 0.0f, // 右上0.5f, -0.5f, 0.0f, // 右下-0.5f, -0.5f, 0.0f, // 左下-0.5f, 0.5f, 0.0f, // 左上 };unsigned i…...
Open3D 基于kdtree树的邻近点搜索(10)
Open3D 基于kdtree树的邻近点搜索(10) 一、算法简介二、算法实现1.K邻近点搜索2.R邻域点搜索三、结果释义一、算法简介 KD 树(k-dimensional tree)是一种用于组织 k 维空间中点的数据结构,旨在提供高效的 k 最近邻搜索和范围搜索(如半径邻域搜索)。KD 树通过递归地将空间…...
c++实现支持动态扩容的栈(stack)
1.在栈容量满时自动扩容: 支持自动扩容栈实现: // // myStack.hpp // algo_demo // // Created by Hacker X on 2024/1/9. //#ifndef myStack_hpp #define myStack_hpp #include <stdio.h> #include <string.h> //栈实现 //1.入栈 //2.出栈 //3.空栈 //4.满栈 …...
举例说明计算机视觉(CV)技术的优势和挑战。
计算机视觉(Computer Vision,CV)技术是指使计算机能够理解和解释视觉数据的能力。CV技术在很多领域都有广泛的应用,包括图像处理、目标检测、人脸识别、自动驾驶等。以下是CV技术的一些优势和挑战的例子: 优势&#x…...
如何利用docker来部署war包项目
首先编写dockerfile文件: # 使用官方的Tomcat镜像作为基础镜像 FROM tomcat:9.0# 将war包复制到容器的webapps目录下 COPY xxxx.war /usr/local/tomcat/webapps/# 暴露Tomcat的默认端口 EXPOSE 8080 编写docker-compose.yml文件: version: 3 services…...
SpringBoot 如何增强PageHelper入参的健壮性
PageHelper.startPage(int pageNum, int pageSize, boolean count) 参数为外部输入,故存在异常输入场景。比如 pageNum 和 pageSize 输入的值 负数 或者 0,所以引入PageUtils来对入参进行判断矫正,从而避免引入异常。 第1步:支持…...
书生·浦语大模型全链路开源体系 学习笔记 第三课
huggingface-cli: command not found 按照该文档解决即可 https://github.com/huggingface/huggingface_hub/issues/1079 具体如下: 1、确保环境已将安装huggingface-cli 2、版本需要旧版,pip install huggingface_hub0.20.1 3、再按如下执行 # T…...
CodeGPT,你的智能编码助手—CSDN出品
CodeGPT是由CSDN打造的一款生成式AI产品,专为开发者量身定制。 无论是在学习新技术还是在实际工作中遇到的各类计算机和开发难题,CodeGPT都能提供强大的支持。其涵盖的功能包括代码优化、续写、解释、提问等,还能生成精准的注释和创作相关内…...
VMware Workstation——修改虚拟机配置和设置网络
目录 一、修改配置 1、点击需要修改配置的虚拟机,然后点击编辑虚拟机配置 2、修改内存、CPU、硬盘配置 二、设置网络 1、从虚拟机配置中进入到网络适配器设置 2、选择网络连接模式 一、修改配置 1、点击需要修改配置的虚拟机,然后点击编辑虚拟机配…...
计算机毕业设计 基于SpringBoot的项目申报系统的设计与实现 Java实战项目 附源码+文档+视频讲解
博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…...
CentOS 7.8 安装 Docker
1.卸载旧版本 sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine2.安装依赖 sudo yum -y install gcc sudo yum -y install gcc-c3.安装软件包 sudo yum inst…...
Flask 会员列表展示
感谢编程浪子师傅的源码信息分享 web/controllers/member/Member.py # -*- coding: utf-8 -*- from flask import Blueprint,request,redirect,jsonify from common.libs.Helper import ops_render,iPagination,getCurrentDate,getDictFilterField,selectFilterObj from comm…...
光纤知识总结
1光纤概念: 光导纤维(英语:Optical fiber),简称光纤,是一种由玻璃或塑料制成的纤维,利用光在这些纤维中以全内反射原理传输的光传导工具。 微细的光纤封装在塑料护套中,使得它能够…...
LeetCode简单题记录
1、两数之和,给定数组nums,求和为target的两个数组元素的下标 我用了两个for循环,官方解为 哈希表,知识盲区 class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<i…...
【Python学习】Python学习10-列表
目录 【Python学习】Python学习10-列表 前言创建语法访问列表中的值更新和删除列表元素操作列表列表截取Python列表函数&方法参考 文章所属专区 Python学习 前言 本章节主要说明Python的列表List。 创建语法 创建一个列表 通过方括号和逗号分割创建,列表数据…...
MySQL四大引擎,数据库管理,数据表管理,数据库账号管理
MySQL四大引擎 InnoDB InnoDB引擎是MySQL默认的存储引擎。它支持事务和行级锁定,并具有高并发性和数据完整性保护的特性。InnoDB适用于具有复杂查询和高并发读写操作的应用程序。MyISAM InnoDB引擎特点和优势 事务支持:InnoDB支持ACID(原子…...
为什么你的DeepSeek Terraform配置总在CI/CD中崩溃?5个被官方文档隐藏的state锁机制真相
更多请点击: https://intelliparadigm.com 第一章:为什么你的DeepSeek Terraform配置总在CI/CD中崩溃?5个被官方文档隐藏的state锁机制真相 DeepSeek 与 Terraform 的深度集成虽提升了 AI 基础设施编排能力,但其 state 锁行为在 …...
从入门到精通:IGV基因组浏览器实战操作全解析
1. IGV基因组浏览器初探 第一次接触IGV(Integrative Genomics Viewer)是在五年前分析RNA-seq数据时,当时被它轻量级的安装包和流畅的基因组导航体验惊艳到了。作为一款由Broad研究所开发的免费工具,IGV完美平衡了专业性和易用性—…...
Encounter/Innovus GIFT TCL 脚本流程索引清单
目录 一、 布局阶段 (Placement) 二、 布线阶段 (Routing) 三、 时序阶段 (Timing) 四、 电源阶段 (Power) 五、 IO 与端口处理 六、 调试与辅助工具 一、 布局阶段 (Placement) 脚本名称 核心用途 调用场景 userAddAllHInsts.tcl 为源模块中的每个扇出添加缓冲器 解决高扇…...
【2026社工】初级社会工作者历年真题及答案PDF电子版(2010-2025年)
2026年初级社会工作者职业水平考试安排 考试时间: 2026年5月23日 考试科目与形式 科目名称考试形式社会工作实务闭卷笔试社会工作综合能力闭卷笔试 备考资源说明 提供2010-2025年完整历年真题及解析,覆盖全部考试科目,具体功能如下&#…...
百度文库文档免费下载终极指南:3步快速获取纯净PDF
百度文库文档免费下载终极指南:3步快速获取纯净PDF 【免费下载链接】baidu-wenku fetch the document for free 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wenku 你是否曾在百度文库找到心仪的文档,却被烦人的广告、付费提示和杂乱页面…...
电源设计和效率优化案例C01
本文重点讲清楚三个非常重要的问题: 手把手教会计算电源的效率计算,包括线性电源和开关电源等 1-电源的上下管的 Qg和Rdson为什么是一对矛盾量? 2-单相30A的电流输出电源要求,对上下管子应该如何取舍这两个参数,为什么? 电源设计是硬件设计的核心组成部分,尤其事目前…...
计算机视觉模型选型实战:四维战场决策法
1. 项目概述:这不是一场技术选型,而是一次实战能力的现场测验 “计算机视觉的战场:选择你的冠军”——这个标题乍看像游戏海报,实则精准戳中了当前CV工程落地最真实的痛点。它不谈论文指标、不堆模型参数,而是把镜头直…...
大模型“开源”迷思:小白与程序员必看,收藏这份避坑指南!
大模型“开源”并非简单代码开放,涉及权重、数据、训练方法等多维度。文章详解不同协议(如MIT、Apache-2.0、GPL、AGPL等)对企业商业化的影响,强调理解协议边界至关重要。从开放权重到真正开源,企业需关注协议对商用、…...
深度学习正则化(三)—— 提前终止 + 参数共享 + 稀疏表示(三十)
1. 定位导航 正则化 5 篇中,本篇承前启后: 第 28:参数范数惩罚(L1/L2)— 加在损失函数上 第 29:数据增强、噪声、半监督 — 操作数据 第 30(本篇):提前终止、参数共享、稀疏表示 — 隐式正则化 第 31:Bagging + Dropout 第 32:对抗训练 + 切面分类 本篇的三个方法表…...
NomNom终极指南:3个技巧让你轻松掌控《无人深空》存档
NomNom终极指南:3个技巧让你轻松掌控《无人深空》存档 【免费下载链接】NomNom NomNom is the most complete savegame editor for NMS but also shows additional information around the data youre about to change. You can also easily look up each item indi…...
