测试技术的发展

互联网发展风起云涌的几十年,背后是计算机技术的更新迭代,软件开发经历了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】相关推荐

  1. WebDriver自动化测试框架详解

    webDriver自动化测试框架详解 一. 简介 WebDriver API相对于Selenium Remote Control API来说,虽然同样是控制浏览器,但它的编程接口更加简洁 WebDri ...

  2. pytest自动化测试框架详解+mark标记+fixture夹具

    介绍 pytest是python的一种单元测试框架,同自带unittest框架类似,功能,效率更强大 特点: 1. 非常容易上手,入门简单,丰富的文档 2. 支持参数化 3. 执行测试用例的过程中,跳 ...

  3. (原创)Python 自动化测试框架详解

    自己折腾了一个python的自动化测试框架,梳理了一下流程,简单分享一下. 项目背景 B/S架构,进行用户界面的自动化测试 工具选择 python开发的自动化测试框架,足够灵活,可以随时根据需求进行变 ...

  4. selenium-python自动化测试框架详解

    自动化测试框架 项目自动化测试框架设计为4层 1.基础层(通用层) 基础层: 将通用,重复性比较高的代码封装到这里. 写通用的代码的. 其他3层想要的话,就可以直接调用. 例如: 读取测试数据的代码, ...

  5. 【腾讯优测月刊】安卓主流自动化测试框架详解与实践

    导语: 随着移动应用发布周期越来越紧凑.安卓品牌机型/屏幕/系统版本等碎片化日益严重,移动测试工程师的工作量日益剧增.自动化测试or手工测试?这个前些年争执不休的话题,近年来随着云测试平台的崛起似乎已 ...

  6. uft怎么做app自动化测试_UFT/QTP自动化测试框架详解

    前言 很多从事测试的朋友都会接触到自动化测试或要求有自动化测试的技能,自动化测试已成为测试行业发展的趋势.自动化测试的工具有很多且各有所长,UFT(QTP)是最流行的测试工具之一,因此很多公司在招聘时 ...

  7. TestNG自动化测试框架详解

    TestNG 文章目录 TestNG 一.概述与使用 1.1 配置环境 1.2 测试方法 1.3 使用xml文件 二.测试方法常用注解 2.1 配置类注解 2.2 非配置类注解 2.2.1 @Para ...

  8. python+selenium自动化测试框架详解,我就讲一遍

    目录 前言 1.测试框架分层设计 2.测试框架目录结构 3.编写用例方法 4.测试结果展示 前言 本文整理归纳以往的工作中用到的东西,现汇总成基础测试框架提供分享. 框架采用python3 + sel ...

  9. Django REST FRAMEWORK swagger(一)框架详解

    Django REST FRAMEWORK swagger(一.框架详解) 一.Django REST  SWAGGER框架图 具体见下图 二.说明 RESTFul说明 每一个URI代表一种资源: 客 ...

最新文章

  1. 基于jQuery的AJAX和JSON实现纯html数据模板
  2. 通过正则表达式分句提取中文内容
  3. Java并发常用方法 sleep 和 wait
  4. 终端terminal的颜色配置
  5. 列赋值为列表_Pandas入门-3-新增数据列操作
  6. 【BZOJ4196】【codevs4621】软件包管理器,树链剖分练习
  7. (转)Hibernate的配置详解
  8. 数据库系统由计算机硬件软件,集美大学计算机工程学院数据库软件04B卷答案.doc...
  9. 【原创】软件测试基础流程
  10. 环境的利用方式对演化博弈模型中合作的影响
  11. 斯蒂文理工计算机排名,全美最强STEM大学排行榜发布!这些学校考虑一下?
  12. 前端 关于汇率的计算
  13. 惊!Go里面居然有这样精妙的小函数!
  14. 在Docker安装Calibre-web搭建网上书城
  15. 打开xshell一直没反应,xshell打开失败的问题
  16. 申请 NVIDIA vGPU 90天试用 LICENSE
  17. 设计师找灵感,就上这5个网站~
  18. mysql 幕客网_MYSQL 基本使用 for Mac
  19. Excel表格数据该怎么读取和写入之——xlsread函数和xlswrite函数
  20. NoSQL学习笔记之MongoDB-01初识NoSQL

热门文章

  1. CC00307.CloudKubernetes——|KuberNetes运维.V27|——|监控.v04|PromQL查询_运算符|
  2. 火车头V9翻译插件-终极稳定版(翻译10000篇文章不报错)
  3. 【web安全学习篇1】VBS脚本基础编写总结
  4. iOS 打电话、发短信、写邮件、打开常用软件的几种方式
  5. FXCM福汇官网 fx-aisa.com外汇交易中,你必须了解的八种主流货币知识
  6. ARM汇编指令以及伪指令
  7. 利用Python爬取爬取APP上面的数据
  8. 第十五天 12-tcpdump检测流量工具
  9. 【Vue.JS】Vue.JS 表格内容排序组件,Render函数的使用
  10. 用智能ABC关闭程序