前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自动化测试框架详解【2022】

自动化测试框架详解【2022】

作者头像
小黑同学
发布2022-09-28 13:46:51
1.2K0
发布2022-09-28 13:46:51
举报
文章被收录于专栏:E=mc²E=mc²

测试技术的发展

互联网发展风起云涌的几十年,背后是计算机技术的更新迭代,软件开发经历了c、php、java、python、go等语言百家争鸣,在软件测试领域同样是长江后浪推前浪,白盒、自动化、持续集成等技术和理念不断推陈出新。

ibm的staf(Software Testing Automation Framework,软件测试自动化框架) 起源于2006年,在2010-2012年迎来全盛时期,之后计算机技术迎来快速发展,测试领域也诞生了更为高效的自动化测试方式。2016年 STAF停止维护,到今天几乎销声匿迹,基本退出了历史舞台。

随着计算机技术人员的大量增加,通过编写代码来进行测试成为一种更为高效的测试方式,由此而诞生了以计算机语言为基础的自动化测试方案,当然测试工程师需要具备代码能力。

如图,是近20年来编程语言的流行走势。

今天我们就结合当前的主流编程语言,分别讲述java和python语言环境下各自的自动化测试框架。

通用工具介绍

测试框架并不是一成不变的,事实上它就像搭积木一样,是由具有各种功能的工具组合而成,可以根据需求自由组合,下面介绍几个通过的基础工具。

jenkins(可以支持java、python等大多数语言的项目)

jenkins是一个基于java语言开发的,可以取代繁杂的手动集成,用于监控持续重复工作的持续集成工具,简单说就是一个可以设置定时任务,自动执行并报告结果的工具。

优点:解放双手,极大地提高了效率,jenkins通常用来自动化执行各种任务,包括构建、测试和部署软件。

学习资料:https://www.yiibai.com/jenkins

selinum

selenium是一个模拟人对web端页面操作的测试工具库。

selinum通常需要搭配chromedriver一起使用,chromedriver是Chrome浏览器驱动,是selenium 模块用来模拟打开谷歌浏览器所必须的一个文件。

优点:解放双手,Selenium+chromedriver能够驱动浏览器模拟人的操作,如鼠标单击、键盘输入等,同时也可以实现目标内容的获取和自动下载等。

学习资料:selenium库的基本使用 - 码农教程

appium

appium 是一个模拟人对移动端操作的测试工具库,appium是一个合成词,分别由“application”的前三个字母和“Selenium”的后三个字母组成,它的作用与selenium 其实一样的。

appium 类库封装了标准 Selenium 客户端类库。

优点:解放双手,可以实现多点触控手势和屏幕方向等操作。

学习资料:https://www.jianshu.com/p/3c5ee599a20d

java语言环境下的工具

maven

maven是一个java项目构建和管理的工具,最主要的功能在于可以方便的进行二进制库及依赖的管理

打个比方,有一个工人,去哪儿干活儿要随身携带所有的工具,说不定什么时候会用,后来,他有了一张神奇清单,上面写着他的工具名称,出去干活再也不用带沉甸甸的工具了,只要打开神奇清单,需要的工具自动就来了。

而maven对于程序员来说就是那张神奇清单,它会帮我们维护好编程所需的各种依赖。

优点:Maven 在美国是一个口语化的词语,代表专家、内行的意思,约等于北京话中的老炮儿。有老炮儿在手,干活儿不愁。

学习资料:Maven 教程 | 菜鸟教程

testng

testng是一个简化代码编写的一站式测试框架

  1. 测试方法是带有注解@Test的java方法
  2. 将测试信息添加到testng.xml文件或者build.xml
  3. 可以在suite/test/test method三个级别来执行测试方法

优点:简化代码编写,提高测试效率。

学习资料:测试框架TestNG使用介绍_进行

OkHttp

OkHttp是一个当下比较流行的轻量级的网络请求框架,易用性,复用性都比较好。一般使用时,最好再对它进行再次封装,以符合具体场景的使用需求。

优点:拿来即用,不需关心底层实现,简单易上手。

学习资料:OkHttp简介 - 风一样的码农 - 博客园

最后根据实际场景组合所需的各个工具得到自动化测试框架:

  • java自动化接口测试:jenkins+maven+testng+okhttp
  • java自动化web测试:jenkins+maven+testng+selinum
  • java自动化app测试:jenkins+maven+testng+appium

Python语言环境下的工具

pytest

pytest是一个非常成熟的全功能的python测试框架。类似的工具还有python原生的unittest,但pytest完全兼容unitest,并且含有非常丰富的插件,能够支持简单的单元测试和复杂的功能测试和接口自动化测试。

优点:插件丰富,可以很好地和jenkins集成。

学习资料:超详细的 pytest 教程(一)使用入门篇 - 测试派

requests

requests是用于发送HTTP请求的第三方库。我们实现请求的时候并不需要实现底层的细节,只需要引入一个 requests 就可以了。类似的工具有很多,比如urllib、httplib等。

优点:requests使用简单、强大高效。

学习资料:requests库 · Python爬虫 · 看云

allure

allure是一款开源的,用来展示测试结果的工具。pytest可以生成html格式的报告,但是allure不仅可以与pytest做集成生成美观易读的测试报告,同时可以集成到jenkins,所以推荐使用。

优点:可以生成美观的报告,并集成到jenkins。

学习资料:allure测试报告_测试之道.的博客-CSDN博客_allure测试报告

pytest、requests、allure、jenkins等工具的关系如下图:

结合通用的工具,不同的自动化测试场景下对应的自动化测试框架如下

  • python自动化接口测试:jenkins+pytest+requests+allure
  • python自动化web测试:jenkins+pytest+selinum+allure
  • python自动化app测试:jenkins+pytest+appium+allure

自动化测试是测试工程师从初级到中高级的分界线,也是入职大厂的必备技能。

上文介绍了多个自动化测试框架,如果是初学者,你可能会头大:这么框架我一下子学不会啊~

别慌,其实目前业内真正广泛使用的是接口自动化测试,web及app自动化测试是作为辅助,如果是初学者,我们先花精力掌握接口自动化测试框架,后续再不断精进。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-09-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 测试技术的发展
  • 通用工具介绍
  • java语言环境下的工具
  • Python语言环境下的工具
相关产品与服务
持续集成
CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档