了解自动化测试

作者:黑马测试
链接:https://www.zhihu.com/question/19923336/answer/2585952461
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

http://nccloud.yytimes.com/uploads/question/20220930/df964d195e9ccdcf8553c642c4efa814.jpg
今天我们就结合当前的主流编程语言,分别讲述java和python语言环境下各自的自动化测试框架。

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

一、通用自动化测试框架介绍

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

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

http://nccloud.yytimes.com/uploads/question/20220930/3ba3172bf50ee9257ae520f271579b93.jpg

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

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

官方下载地址:Jenkins download and deployment

配套视频:6天UI自动化2021版》密码:51es
b站链接:https://www.bilibili.com/video/BV18Q4y1y7v3

2、Selenium(是一个模拟人对web端页面操作的测试工具库)

http://nccloud.yytimes.com/uploads/question/20220930/3f5e32dd2c147b014c4267c8629a7c9c.jpg

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

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

官方下载地址:Downloads | Selenium

配套视频:8天web自动化入门教程》密码:xest
b站链接:https://www.bilibili.com/video/BV1eZ4y1s7BY

3、Appium(模拟人对移动端操作的测试工具库)

http://nccloud.yytimes.com/uploads/question/20220930/f13ea3253d432e518526448db30a7955.jpg
Appium 内部原理

简介:appium是一个合成词,分别由“application”的前三个字母和“Selenium”的后三个字母组成,它的作用与selenium 其实一样的。appium 类库封装了标准 Selenium 客户端类库。

优点:解放双手,可以实现多点触控手势和屏幕方向等操作。可以跨平台同时支持Android、iOS。支持多种语言,java、python、php、Ruby等等。

学习资料:简介 - Appium

下载地址:Appium: Mobile App Automation Made Awesome.

配套视频:

1)《0基础入门移动自动化Appium框架》 密码:qdto
本视频b站链接:https://www.bilibili.com/video/BV11p4y197HQ

2)《Appium进行IOS真机自动化测试》 密码:1how
本视频b站链接:https://www.bilibili.com/video/BV1tT4y137bD

二、Java语言下的自动化测试框架

1、Maven(Java项目构建和管理的工具)

http://nccloud.yytimes.com/uploads/question/20220930/a73eb38632d6b326c556bdf30fab11cc.jpg

简介:Maven一个最主要的功能在于可以方便的进行二进制库及依赖的管理

打个比方,有一个工人,去哪儿干活儿要随身携带所有的工具,说不定什么时候会用,后来,他有了一张神奇清单,上面写着他的工具名称,出去干活再也不用带沉甸甸的工具了,只要打开神奇清单,需要的工具自动就来了。
而maven对于程序员来说就是那张神奇清单,它会帮我们维护好编程所需的各种依赖。

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

学习资料:https://www.runoob.com/maven/maven-tutorial.html


2、Testng(简化代码编写的一站式测试框架)

http://nccloud.yytimes.com/uploads/question/20220930/07563df39ff00320568f83f0f4282434.jpg

Testng简介:

测试方法是带有注解@Test的java方法

将测试信息添加到testng.xml文件或者build.xml

可以在suite/test/test method三个级别来执行测试方法

Testng优点:

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

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


3、OkHttp

http://nccloud.yytimes.com/uploads/question/20220930/460cafff94e5ae8d5115292019e9e656.jpg

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

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

学习资料:https://www.cnblogs.com/chenpi/p/5980177.html


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

http://nccloud.yytimes.com/uploads/question/20220930/3060050c7d2a017b69756b3ef499de45.jpg
  • java自动化接口测试:jenkins+maven+testng+okhttp
  • java自动化web测试:jenkins+maven+testng+selinum
  • java自动化app测试:jenkins+maven+testng+appium


三、Python语言环境下的工具

1、Pytest(非常成熟的全功能的python测试框架)

http://nccloud.yytimes.com/uploads/question/20220930/033b8f7e40e16abd3065b6c6caf8e41b.jpg

简介:类似的测试框架工具还有Python原生的unittest,但Pytest完全兼容Unitest,并且含有非常丰富的插件,能够支持简单的单元测试和复杂的功能测试和接口自动化测试。

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

学习资料pytest教程_w3cschool

视频学习:6天UI自动化2021版》密码:51es

本视频b站链接:https://www.bilibili.com/video/BV18Q4y1y7v3


2、Requests(用于发送HTTP请求的第三方库)

http://nccloud.yytimes.com/uploads/question/20220930/d1d5251f9396153177226b5e68782310.jpg

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

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

学习资料:https://www.kancloud.cn/king_om/py_1/2229543

视频资料:
1)《4天接口视频教程2021版》 密码:zavh
本视频b站链接:https://www.bilibili.com/video/BV11g411V7Kf

2)3天小程序项目2021版》 密码:m5iy
本视频b站链接:https://www.bilibili.com/video/BV12Q4y1C7Wf

3)《python实现头条项目接口自动化测试实战》密码:ok5w
本视频b站链接:https://www.bilibili.com/video/BV1va4y1i76B


3、Allure(一款开源的,用来展示测试结果的工具)

http://nccloud.yytimes.com/uploads/question/20220930/002e39ab4ee5348b62c18a909f5b957b.jpg

简介:Pytest可以生成html格式的报告,但是Allure不仅可以与Pytest做集成生成美观易读的测试报告,同时可以集成到Jenkins,所以推荐使用。

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

视频:6天UI自动化2021版》 密码:51es
本视频b站链接:https://www.bilibili.com/video/BV18Q4y1y7v3


4、Pytest、Requests、Allure、Jenkins等工具的关系如下图

http://nccloud.yytimes.com/uploads/question/20220930/a6bb654d9e08c5d6b91ebfef57e9ff4a.jpg

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

  • Python自动化接口测试:jenkins+pytest+requests+allure
  • Python自动化Web测试:jenkins+pytest+selinum+allure
  • Python自动化App测试:jenkins+pytest+appium+allure

四、自动化测试框架学习总结

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

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

http://nccloud.yytimes.com/uploads/question/20220930/2502c9ea7ce3d623f3ded4cbb3ae1ae2.jpg

别慌,其实目前业内主要使用的接口自动化测试,Web及App自动化测试是作为辅助,所以你先花精力掌握接口自动化测试框架就可以了。

已邀请:

要回复问题请先登录注册