推荐几个超实用的开源自动化测试框架
有什么好的开源自动化测试框架可以推荐?为了让大家看文章不蒙圈,文章我将围绕3个方面来阐述:
1、通用自动化测试框架介绍
2、Java语言下的自动化测试框架
3、Python语言下的自动化测试框架
随着计算机技术人员的大量增加,通过编写代码来进行测试成为一种更为高效的测试方式,由此而诞生了以计算机语言为基础的自动化测试方案,当然测试工程师需要具备代码能力。
今天我们就结合当前的主流编程语言,分别三种环境下各自的自动化测试框架。
一、通用自动化测试框架介绍
测试框架并不是一成不变的,事实上它就像搭积木一样,是由具有各种功能的工具组合而成,可以根据需求自由组合。下面介绍几个通用的基础工具:
1、Jenkins(可以支持java、python等大多数语言的项目)
简介:Jenkins是一个基于java语言开发的,可以取代繁杂的手动集成,用于监控持续重复工作的持续集成工具,简单说就是一个可以设置定时任务,自动执行并报告结果的工具。
优点:解放双手,极大地提高了效率,jenkins通常用来自动化执行各种任务,包括构建、测试和部署软件。
官方下载地址:https://www.jenkins.io/download/
配套视频:《6天UI自动化2021版》
https://www.bilibili.com/video/BV18Q4y1y7v3
2、Selenium(是一个模拟人对web端页面操作的测试工具库)
简介:Selenium通常需要搭配chromedriver一起使用,chromedriver是Chrome浏览器驱动,是selenium 模块用来模拟打开谷歌浏览器所必须的一个文件。
优点:解放双手,Selenium+chromedriver能够驱动浏览器模拟人的操作,如鼠标单击、键盘输入等,同时也可以实现目标内容的获取和自动下载等。
官方下载地址:https://www.selenium.dev/downloads/
配套视频:《8天web自动化入门教程》
https://www.bilibili.com/video/BV1eZ4y1s7BY
3、Appium(模拟人对移动端操作的测试工具库)
Appium 内部原理
简介:appium是一个合成词,分别由“application”的前三个字母和“Selenium”的后三个字母组成,它的作用与selenium 其实一样的。appium 类库封装了标准 Selenium 客户端类库。
优点:解放双手,可以实现多点触控手势和屏幕方向等操作。可以跨平台同时支持Android、iOS。支持多种语言,java、python、php、Ruby等等。
学习资料:http://appium.io/docs/cn/about-appium/intro/
下载地址:http://appium.io/
配套视频:
1)《0基础入门移动自动化Appium框架》
https://www.bilibili.com/video/BV11p4y197HQ
2)《Appium进行IOS真机自动化测试》
https://www.bilibili.com/video/BV1tT4y137bD
二、Java语言下的自动化测试框架
1、Maven(Java项目构建和管理的工具)
简介:Maven一个最主要的功能在于可以方便的进行二进制库及依赖的管理
打个比方,有一个工人,去哪儿干活儿要随身携带所有的工具,说不定什么时候会用,后来,他有了一张神奇清单,上面写着他的工具名称,出去干活再也不用带沉甸甸的工具了,只要打开神奇清单,需要的工具自动就来了。
而maven对于程序员来说就是那张神奇清单,它会帮我们维护好编程所需的各种依赖。
优点:Maven 在美国是一个口语化的词语,代表专家、内行的意思,约等于北京话中的老炮儿。有老炮儿在手,干活儿不愁。
学习资料:https://www.runoob.com/maven/maven-tutorial.html
2、Testng(简化代码编写的一站式测试框架)
Testng简介:
测试方法是带有注解@Test的java方法
将测试信息添加到testng.xml文件或者build.xml
可以在suite/test/test method三个级别来执行测试方法
Testng优点:
简化代码编写,提高测试效率。
学习资料:测试框架TestNG使用介绍
https://www.sohu.com/a/288820372_216613
3、OkHttp
简介:OkHttp是一个当下比较流行的轻量级的网络请求框架,易用性,复用性都比较好。一般使用时,最好再对它进行再次封装,以符合具体场景的使用需求。
优点:拿来即用,不需关心底层实现,简单易上手。
学习资料:https://www.cnblogs.com/chenpi/p/5980177.html
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集成。
学习资料:https://www.w3cschool.cn/pytest/
视频学习:《6天UI自动化2021版》
https://www.bilibili.com/video/BV18Q4y1y7v3
2、Requests(用于发送HTTP请求的第三方库)
简介:Requests是用于发送HTTP请求的第三方库。我们实现请求的时候并不需要实现底层的细节,只需要引入一个Requests 就可以了。类似的工具有很多,比如urllib、httplib等。
优点:request使用简单、强大高效。
学习资料:https://www.kancloud.cn/king_om/py_1/2229543
视频资料:
1)《4天接口视频教程2021版》
https://www.bilibili.com/video/BV11g411V7Kf
2)《3天小程序项目2021版》
https://www.bilibili.com/video/BV12Q4y1C7Wf
3)《python实现头条项目接口自动化测试实战》
https://www.bilibili.com/video/BV1va4y1i76B
3、Allure(一款开源的,用来展示测试结果的工具)
简介:Pytest可以生成html格式的报告,但是Allure不仅可以与Pytest做集成生成美观易读的测试报告,同时可以集成到Jenkins,所以推荐使用。
优点:可以生成美观的报告,并集成到jenkins。
视频:《6天UI自动化2021版》
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】可以根据自己的习惯和公司的语言环境来选择,具体可以参考下面这篇文章:
《Python 和Java 哪个更适合做自动化测试?185 赞同 · 32 评论回答》
https://www.zhihu.com/question/264353399/answer/2453360401
另外我也帮大家整理了接口自动化测试的视频学习资料,希望能够对你也有所帮助,加油》...
1)北京校区-《4天接口视频教程2021版》
本视频b站链接:https://www.bilibili.com/video/BV11g411V7Kf/
2)北京校区-《2天带你掌握接口基础》
本视频b站链接:https://www.bilibili.com/video/BV1i541147b8
3)北京校区-《接口测试入门篇》
本视频b站链接:https://www.bilibili.com/video/BV1wA411t75F
4)北京校区- 《小白1小时入门Postman》 密码: 8uwt
本视频百度网盘链接:https://pan.baidu.com/s/1OrOhwVhwrC4FZBgjLS4w8A
5)北京校区- 《3天接口测试postman视频教程》
本视频b站链接:https://www.bilibili.com/video/BV1h54y1L7kz
6)巩固视频-《Python实现接口自动化测试视频》
本视频b站链接:https://www.bilibili.com/video/BV1uz411q7Pg
7)实战视频-《python实现头条项目接口自动化测试实战》
本视频b站链接:https://www.bilibili.com/video/BV1va4y1i76B
8)实战视频《Excel利用openpyxl库管理接口用例》
本视频b站链接:https://www.bilibili.com/video/BV1864y1c7Mn
相关文章:

推荐几个超实用的开源自动化测试框架
有什么好的开源自动化测试框架可以推荐?为了让大家看文章不蒙圈,文章我将围绕3个方面来阐述: 1、通用自动化测试框架介绍 2、Java语言下的自动化测试框架 3、Python语言下的自动化测试框架 随着计算机技术人员的大量增加,通过编写…...
Mac 上解压缩 RAR 文件
RAR 在十几年前的互联网曾叱咤风云般的存在。在那时,你所能见到的压缩文件几乎都是 RAR 格式,大家在 Windows 上使用的压缩、解压缩软件基本都是 WinRAR。虽然这些年使用 RAR 格式的压缩包的情况在逐渐减少,但是你还是经常能在国内各种网站下…...
C++核心编程<引用>(2)
c核心编程<引用>2.引用2.1引用的基本使用2.2引用注意事项2.3引用做函数参数2.4引用做函数返回值2.5引用的本质2.6常量引用2.引用 2.1引用的基本使用 作用: 给变量起别名语法:数据类型 &别名 原名演示#include<iostream> using namespace std; void func();i…...

零入门kubernetes网络实战-20->golang编程syscall操作tun设备介绍
《零入门kubernetes网络实战》视频专栏地址 https://www.ixigua.com/7193641905282875942 本篇文章视频地址(稍后上传) 本篇文章主要是使用golang自带的syscall包来创建tun类型的虚拟网络设备。 注意: 目前只能使用syscall包来创建tun类型的虚拟设备。 tun虚拟网…...

springboot之自动配置
文章目录前言一、配置文件及自动配置原理1、配置文件2、yaml1、注解注入方式给属性赋值2、yaml给实体类赋值3、Properties给属性赋值二、springboot的多环境配置四、自动配置总结前言 1、自动装配原理 2、多种方式给属性赋值 3、多环境配置 4、自动配置 一、配置文件及自动配置…...

wxpython设计GUI:wxFormBuilder工具常用布局结构介绍之布局四—面板拼接式
python借助wxFormBuilder工具搭建基础的GUI界面—wxFormBuilder工具使用介绍:https://blog.csdn.net/Logintern09/article/details/126685315 布局四:面板拼接式,先Panel面板构图,再使用程序代码在Frame框架上拼接面板 下面讲一下…...

全网最全之接口测试【加密解密攻防完整版】实战教程详解
看视频讲的更详细:https://www.bilibili.com/video/BV1zr4y1E7V5/? 一、对称加密 对称加密算法是共享密钥加密算法,在加密解密过程中,使用的密钥只有一个。发送和接收双方事先都知道加密的密钥,均使用这个密钥对数据进行加密和解…...
Python - 目录文件(OS模块) 常用操作
目录os模块的方法os.path()模块的方法使用示例示例一:简单使用示例二:获取文件夹下指定条件的文件os模块的方法 方法说明os.listdir(path)取得指定文件夹下的文件列表os.mkdir(path)创建一个名为path的文件夹os.open(file, flags)打开一个文件ÿ…...
把本地代码初始化到远程git仓库
本地代码,推送到远程的git仓库。第一种方法第一步:建立远程的git仓库第二步:拉取git仓库到本地第三步:将本地代码复制到本地的git拉下来的文件夹中第四步:代码提交即可git add . --> git commit -m 初始化 --> g…...
关于angular中的生命周期函数
生命周期函数,也叫生命周期钩子。 Angular的每个组件(包括根组件和子组件)都存在一个生命周期,从创建、更新、到销毁,Angular提供组件生命周期钩子函数, 组件的生命周期从实例化组件类并渲染组件视图及其…...

【拼图】拼图游戏-微信小程序开发流程详解
还记得小时候玩过的经典拼图游戏吗,上小学时,在路边摊用买个玩具,是一个正方形盒子形状,里面装的是图片分割成的很多块,还差一块,怎么描述好呢,和魔方玩具差不多,有没有听说叫二维的…...
第六章 opengl之光照(颜色)
OpenGL光照颜色创建一个光照场景光照 颜色 颜色由RGB组成,分别是红色,绿色,蓝色。举例定义一个颜色向量: glm::vec3 coral(1.0f, 0.5f, 0.31f);而在现实中,人眼看到的是 物体反射后的颜色,也就是说不能被…...

C语言-基础了解-19-C位域
C位域 一、C位域 如果程序的结构中包含多个开关量,只有 TRUE/FALSE 变量,如下: struct {unsigned int widthValidated;unsigned int heightValidated; } status;这种结构需要 8 字节的内存空间,但在实际上,在每个变…...

MapReduce全排序和二次排序
排序是MapReduce框架中最重要的操作之一。MapTask和ReduceTask均会对数据按照key进行排序。该操作属于Hadoop的默认行为。任何应用程序中的数据均会被排序,而不管逻辑上是否需要。默认排序是按照字典顺序排序,且实现该排序的方法是快速排序。对于MapTask…...

【Vue3】封装数字框组件
数量选择组件-基本结构 (1)准备基本结构 <script lang"ts" setup name"Numbox"> // </script> <template><div class"numbox"><div class"label">数量</div><div cla…...
C++-简述strcpy、sprintf 和 memcpy 的区别
回答如下: strcpy 函数:用于将一个字符串(以 NULL 结尾)从源地址复制到目标地址。函数原型为 char* strcpy(char* destination, const char* source)。需要注意的是,该函数会复制整个字符串,包括 NULL 终止…...
用CPU大法忽悠ChatGPT写前端,油猴子工具库+1
文章目录用CPU大法忽悠ChatGPT写前端,油猴子工具库1源起对话1. 作为一名天才js程序员,开发一个油猴子脚本,实现所有浏览器网页的自动下滑功能,每一个步骤都加上中文注释2. 加一个按钮,只有我点击了按钮才会开始自动下滑…...

初识虚拟DOM渲染器
初识虚拟DOM渲染器什么是虚拟DOM什么是渲染器渲染器的实现组件是什么什么是虚拟DOM 首先简单说一下什么是虚拟DOM,虚拟DOM就是一个描述真实DOM的JS对象 例如: 真实的DOM元素 <div onClick"alert(click me)">click me</div>可以…...

工作日志day03
同时构建静态和动态库 //如果用这种方式,只会构建一个动态库,虽然静态库的后缀是.a ADD_LIBRARY(hello SHARED ${LIBHELLO_SRC}) ADD_LIBRARY(hello STATIC ${LIBHELLO_SRC}) //修改静态库的名字,这样是可以的,但是我们往往希望他…...
【数据挖掘与商务智能分析】第三章 线性回归模型
一元线性回归 一元线性回归的代码实现 1. 绘制散点图 import matplotlib.pyplot as plt X = [[1], [2], [4], [5]] Y...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...
十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建
【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...

【QT控件】显示类控件
目录 一、Label 二、LCD Number 三、ProgressBar 四、Calendar Widget QT专栏:QT_uyeonashi的博客-CSDN博客 一、Label QLabel 可以用来显示文本和图片. 核心属性如下 代码示例: 显示不同格式的文本 1) 在界面上创建三个 QLabel 尺寸放大一些. objectName 分别…...
在ubuntu等linux系统上申请https证书
使用 Certbot 自动申请 安装 Certbot Certbot 是 Let’s Encrypt 官方推荐的自动化工具,支持多种操作系统和服务器环境。 在 Ubuntu/Debian 上: sudo apt update sudo apt install certbot申请证书 纯手动方式(不自动配置)&…...