这些开源自动化测试框架,会用等于白嫖一个w

news2024/9/20 20:32:25

作者:黑马测试
链接: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

  总结:

 光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

​​

​​

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

测试开发视频教程、学习笔记领取传送门!!

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

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

相关文章

C#上位机快速开发笔记

1.下载vs2012版本,安装密钥解除 #微信文章教程有详细描述,公众号“软件安装管家目录” 2.新建工程 3.界面模块介绍 3.资源管理器 3.1 图标修改位置 3.2 软件版本信息文件介绍 4.常用工具箱控件 1. Button按钮 #按键函数代码,按下按…

【Python排序算法系列】—— 希尔排序

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 💫个人格言:"没有罗马,那就自己创造罗马~" 目录 希尔排序 (ShellSort) 由来和特点 理解 过程演示 Step1:…

GO语言笔记3-指针

指针的概念 先看一段代码的输出 package main import "fmt" func main(){ var age int 18fmt.Println("age的内存地址值是:",&age)//age的内存地址值是: 0xc000012090// 定义一个指针变量// *int 是一个指针类型,可以理解为指向int类型的…

Native组件Widget

demo下载路径 gitgithub.com:haijun-suyan/ReminderWidget.git 注意: 组件开发 SwiftUI 添加链接描述

鼠标随动指定区域高亮显示(Excel聚光灯)

实例需求:工作表中数据表实现跟随鼠标选中高亮效果,需要注意如下几个细节需求 数据表为连续区域,但是不一定从A1单元格开始数据表的前两行(标题行)不使用高亮效果数据表中已经应用了条件格式,高亮显示取消…

0109作业

1> 思维导图 2> 使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin&quo…

静态网页设计——多彩贵州(HTML+CSS+JavaScript)(dw、sublime Text、webstorm、HBuilder X)

前言 声明:该文章只是做技术分享,若侵权请联系我删除。!! 感谢大佬的视频:https://www.bilibili.com/video/BV1cK411v7R2/?vd_source5f425e0074a7f92921f53ab87712357b 源码:https://space.bilibili.com…

【漏洞复现】锐捷RG-UAC统一上网行为管理系统信息泄露漏洞

Nx01 产品简介 锐捷网络成立于2000年1月,原名实达网络,2003年更名,自成立以来,一直扎根行业,深入场景进行解决方案设计和创新,并利用云计算、SDN、移动互联、大数据、物联网、AI等新技术为各行业用户提供场…

ROS2 Humble学习笔记

本文发表与个人的github pages。部分内容未同步到这里。 想查看完整内容,请移步到ROS2 Humble学习笔记。 一、前言 2013年的时候已经接触ROS了,当时断断续续学习了一些ROS的基础知识。16年搬到深圳之后,也有幸参加过星火的一次关于ROS的一些…

EI级 | Matlab实现VMD-TCN-GRU变分模态分解结合时间卷积门控循环单元多变量光伏功率时间序列预测

EI级 | Matlab实现VMD-TCN-GRU变分模态分解结合时间卷积门控循环单元多变量光伏功率时间序列预测 目录 EI级 | Matlab实现VMD-TCN-GRU变分模态分解结合时间卷积门控循环单元多变量光伏功率时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.【EI级】Matlab实现…

三甲医院ADR智能监测系统源码,药品不良反应智能监测系统全套源码,java语言,自主研发

ADR智能监测系统源码,药品不良反应智能监测系统全套商业项目源码,自主版权 ADR监测上报系统是基于医院临床数据中心而建立,运用信息技术实现药品不良反应的智能监测、报告管理、知识库查询、统计分析等功能。 系统自动提取不良反应报告数据&…

灵活轻巧的java接口自动化测试实战

前言 无论是自动化测试还是自动化部署,撸码肯定少不了,所以下面的基于java语言的接口自动化测试,要想在业务上实现接口自动化,前提是要有一定的java基础。 如果没有java基础,也没关系。这里小编也为大家提供了一套jav…

手撕 PCA

PCA(Principal Component Analysis),中文名称:主成分分析。迄今为止最流行的降维算法。 假设 n 维空间中的一个单位立方体,易知:一维空间中该立方体中任意两点的距离不超过 1 1 1,二维空间中该…

【MySQL函数】掌握这些常用函数,让你的数据库操作如虎添翼!

目录 强制走索引 字符串函数 通配符 CONCAT:连接两个或多个字符串 LENGTH:返回字符串的长度 LOWER:将字符串转换为小写 UPPER:将字符串转换为大写 TRIM:删除字符串开头和结尾的空格 字符串转化为number 替换…

24/01/09 qt work

1. 使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin",密码是…

doris部署

doris-2.0.1.1部署安装 一、下载doris安装包二、解压到/data下,修改名称三、修改fe配置文件四、启动doris-fe五、验证doris-fe六、修改be配置文件七、启动doris-be八、mysql中连接be,在Doris中添加后端节点九、设置密码 一、下载doris安装包 wget https…

【开源】基于JAVA+Vue+SpringBoot的大学计算机课程管理平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 实验课程档案模块2.2 实验资源模块2.3 学生实验模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 实验课程档案表3.2.2 实验资源表3.2.3 学生实验表 四、系统展示五、核心代码5.1 一键生成实验5.2 提交实验5.3 批阅实…

单片机原理及应用:中断服务函数

承接上文,今天我们来学习一下中断服务函数,对中断不了解的朋友可以回顾一下笔者之前的文章 中断系统结构与控制寄存器 中断服务函数是嵌入式系统中用于处理中断事件的函数,在原版的C语言中并不存在。当发生中断事件时,系统将会跳…

微信小程序canvas画布实现矩形元素自由缩放、移动功能

获取画布信息并绘制背景 .whml <canvas class="canvas" type="2d" id="myCanvas" bindtouchstart="get_rect_touch_position" bindtouchmove="move_or_scale" bind:tap="finish_edit_check"/> .wxss .c…

论文阅读 BERT GPT - transformer在NLP领域的延伸

文章目录 不会写的很详细&#xff0c;只是为了帮助我理解在CV领域transformer的拓展1 摘要1.1 BERT - 核心1.2 GPT - 核心 2 模型架构2.1 概览 3 区别3.1 finetune和prompt 3.2 transformer及训练总结 不会写的很详细&#xff0c;只是为了帮助我理解在CV领域transformer的拓展 …