五一劳动节
从事软件测试工作也有些年了,趁这个五一长假,阳光正好,咳咳,现在已经下雨了,囧,谈下如何搭建接口自动化测试框架。
做为一名初学者,多多少少都会有来自灵魂的拷问:
01 学习接口自动化测试需要掌握哪些基本技能
(1)熟练掌握Java SE(小白可了解一下,所谓Java SE就是指Java基础),推荐看某播客的视频。
(2)熟练掌握数据库基本操作,熟悉JDBC,MyBatis用法。
(3)熟悉开源的自动化测试报告
(allure,reportng,Extentreport)。
reportng:
https://www.cnblogs.com/mrjade
/p/9912073.html
https://www.cnblogs.com/mrjade
/p/9947749.html
extentreport:
https://www.cnblogs.com/mrjade
/p/6237721.html
(4)熟悉项目构建工具Maven,熟悉pom.xml配置。
maven是专门用于构建和管理Java相关项目的工具。使用Maven管理项目的好处主要有两点,其一是使用Maven管理的Java 项目都有着相同的项目结构。有一个pom.xml 用于维护当前项目都用了哪些jar包;所有的java代码都放在 src/main/java 下面;所有的测试代码都放在src/test/java下面 ,目前已经很少有人用ant,建议用maven
(5)熟悉使用常见的持续集成工具如jenkins,并会配置job。
(6)了解HTTP协议,熟悉常见状态码,熟悉并会使用HttpClient。
HTTP 协议可能是现在互联网上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。
HTTP和浏览器有点像,但却不是浏览器。很多人觉得既然HttpClient是一个HTTP客户端编程工具,很多人把他当做浏览器来理解,但是其实HttpClient不是浏览器,它是一个HTTP通信库,因此它只提供一个通用浏览器应用程序所期望的功能子集,最根本的区别是HttpClient中没有用户界面,浏览器需要一个渲染引擎来显示页面,并解释用户输入,例如鼠标点击显示页面上的某处,有一个布局引擎,计算如何显示HTML页面,包括级联样式表和图像。javascript解释器运行嵌入HTML页面或从HTML页面引用的javascript代码。来自用户界面的事件被传递到javascript解释器进行处理。除此之外,还有用于插件的接口,可以处理Applet,嵌入式媒体对象(如pdf文件,Quicktime电影和Flash动画)或ActiveX控件(可以执行任何操作)。HttpClient只能以编程的方式通过其API用于传输和接受HTTP消息。
(7)熟悉HTTPS协议
HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性
02 如何从0开始学习接口自动化测试
前提是你得知道以上几点,网上找教程(教程非常多),刚开始并不需要分层思想及设计思路,也不需要完全封装,大致了解整个流程即可,按照教程走一遍流程。
03 为什么要做接口自动化测试
首先我们要知道的是,接口自动化测试并不是让你去通过这一手段发现bug,然尔很多人仍然认为,这一手段就是的bug,那我也不会反驳什么,每个人都有不同的理解,但是我认为接口自动化测试的目的在于保证系统的正确性,稳定性,保证接口正常使用,保证各个依赖系统能够正常通信,如果某个接口出现问题,可以随时通过监控如邮件,短信通知到相关责任人。
一:搭建接口自动化测试框架前应考虑以下几点
1.可重复使用
2.可维护性
3.稳定性
二:准备环境配置
01 选择适合自己的代码编辑器(如eclipse,idea)
(1)idea下载地址:
https://www.jetbrains.com/idea/
download/other.html
(2)eclipse下载地址:
https://www.eclipse.org/
downloads/
02 安装JDK并配置JDK环境变量
(1)jdk下载地址链接:
https://pan.baidu.com/s
/1UTEX3wjkz37hlbrF3gGq2Q
密码:tpa9
(2)环境变量配置:
https://www.cnblogs.com/mrjade/
p/6483812.html
03 下载maven或ant
(1)ant下载地址:
https://ant.apache.org/
manualdownload.cgi
(2)maven下载地址:
http://maven.apache.org/
download.cgi
三:重点说明
(1)其中操作excel所用到的jar为poi,关于如何操作excel的,请查看
https://www.cnblogs.com/mrjade/p/7477792.html
(2)接口请求分为post,get
四:代码编写
![db3df17c5f824afeb0ae5b1cbf1f09ae.png](https://i-blog.csdnimg.cn/blog_migrate/45ee14b691a70d8999814efb30503e88.jpeg)
![d47bd46203af9a03b4adc96c82e2a19e.png](https://i-blog.csdnimg.cn/blog_migrate/7283d950ab53cc5003734f5137ec4833.jpeg)
![4b2fa7157849f967c4404e35525f0f99.png](https://i-blog.csdnimg.cn/blog_migrate/d254d0f4d98981d3412edaf27e815d1b.jpeg)
![c10ab8687c16de3046902094df58ecab.png](https://i-blog.csdnimg.cn/blog_migrate/ba3b14d6a621214f9758fc52090a1d23.jpeg)
![267bf69c893428441592fb32a3b09652.png](https://i-blog.csdnimg.cn/blog_migrate/7657df51d2b5feee74110ab83945c39f.jpeg)
![b629ce10da31d075049edb55884e43ca.png](https://i-blog.csdnimg.cn/blog_migrate/ee7b6763b9310eb96f3c45442cbdfe17.jpeg)
以上就是整个接口测试框架结构,下面贴出了关键性代码,关于具体实现细节,请自行实现,如有疑问,可随时咨询。
![6c6a31d0e088ab9be1fd108fb168b1de.png](https://i-blog.csdnimg.cn/blog_migrate/14fc5a7512a8812308927bcf2781ab46.jpeg)
![ca6ad927ffa46afc4af5836459fd5d73.png](https://i-blog.csdnimg.cn/blog_migrate/42be700fc7389ffa89e38dbeeb099d85.jpeg)
![667b411ec44dec5d13ee9758d5696656.png](https://i-blog.csdnimg.cn/blog_migrate/5de676710e0172eddc856556fdf7490d.jpeg)
测试用例
![f9d7b9a631e11ab8586512e206fd6005.png](https://i-blog.csdnimg.cn/blog_migrate/87e41f1c7dc4fd5dcf3b24efe8429152.jpeg)
![05a3d246babc041d00dea7eec4d701f8.gif](https://i-blog.csdnimg.cn/blog_migrate/f889179c42c64479eddd26082d021f45.gif)
听说转发文章
会给你带来好运
扫码立即关注我们微信号 : TesterRoad
公众号:测试工程师成长之路
![0ee027220d118047941413fcb752697a.png](https://i-blog.csdnimg.cn/blog_migrate/63b6105597a2c61afc3c9ff4973b55ae.jpeg)
![57d6bf916b51c35e379f1d88ed03f7a5.png](https://i-blog.csdnimg.cn/blog_migrate/91f1b95a37d35b3c1b3c83cca8ee29e0.png)
![b296d9043f3b63f5815c9f0a577999d2.png](https://i-blog.csdnimg.cn/blog_migrate/bb21237d060593f5b35251624a6525b2.png)