转载于:http://qa.blog.163.com/blog/static/190147002201510275306185/

把群博里关于接口自动化的文章都看了一遍,都是关于测试过程中遇到的问题及解决方法,还没有框架搭建的博文。对于未做过接口自动化和java菜鸟的我,搭建好框架才是迈出的第一步。记录下搭建的过程,希望能够对想做接口自动化的同志们有一定的帮助。有些步骤较粗,若有问题,欢迎联系我。

一、环境安装
1、前提
安装好jdk
配置好Java环境变量
安装Eclips
这些网上都有,就不再详细介绍。

资源分享链接:http://pan.baidu.com/s/1v9Fw6

2、安装TestNG插件

在线安装由于网速原因,速度较慢。下面是离线安装方式。

(1)解压eclipse-testng离线包.zip

(2)将【eclipse-testng离线包/feature】中的文件夹org.testng.eclipse_6.8.6.20130607_0745复制到【MyEclipse安装目录/features】目录下

(3)将【eclipse-testng离线包/org.testng.eclipse_6.8.6.20130607_0745】文件夹复制到【MyEclipse安装目录/plugins】目录下

(4)重启MyEclipse,Windows - show view - TestNG

3、安装Ant

(1)解压apache-ant-1.9.6-bin.zip到任意目录下

(2)配置Ant环境变量,在Path变量末尾添加:<Ant目录>/bin;

二、在Eclipse中创建Java工程

1、Eclipse -> File -> New -> Java Project,如下图,在弹窗中填入Project name,点击Finish,即可完成工程的创建。

2. 导入相关的jar包:

工程上右键 -> Build Path -> Configure Build Path...,如下图所示,打开Build Path配置窗口。
导入已经安装的TestNG插件,如下图所示完成testNG的导入:
3. 从资源分享链接中下载lib.zip,解压开,按下图方式导入里面的jar包。导入的这些jar包会在程序中用到。
三、使用TestNG框架编写测试用例
1. 创建src文件夹,存放测试相关的代码,在工程上右键 -> New -> Folder,填入文件名字:src。
2. 按照数据与代码分离和公共方法提取的原则,我的代码结构如下划分:
3. 脚本编写顺序
3.1 全局配置文件(GlobalSettings.java)
存放一些工程全局的变量,比如baseUrl、timeout等;
3.2 Http协议实现(HttpClientHelper.java)
根据项目接口使用的协议,实现相关的请求。我们的项目有两种方式,一种是使用NameValuePair的方式封装请求参数,一种是使用JSONObject的方式封装请求参数,因此针对这两种方式都做了代码实现。
3.3 接口实现(GList_API.java)
以“创建G单”为例,实现该接口:
3.4 准备测试数据(TestData.java)
为接口准备测试数据。

3.5 测试数据参数化(GListDataProvider.java),返回的参数个数需要与testsuit中函数参数个数一致。

3.6 测试用例suit(GListCURD.java)
4. 测试用例调试与执行
按照步骤三写好了所有的用例,可以进行用例的调试与执行了。
4.1 测试用例脚本调试
在步骤三的测试用例suit GListCURD.java上右键,“Debug as”或“Run as” -> "TestNG Test",即可运行该脚本。
4.2 测试用例脚本执行
有两种方式可以运行该脚本,testNG或者ant。
使用testNG运行,操作如步骤4.1。
使用ant运行,需要创建xml,请参考资源库中的build.xml、smokeTest.xml。若需要生成testNG报告,还需要下载test-result.xsi文件。

4.3 美化后的运行结果report

手把手教你用Eclipse+TestNG搭建接口自动化测试框架的更多相关文章

  1. Eclipse+TestNG搭建接口自动化测试框架

    一.环境安装 1.前提 安装好jdk 配置好Java环境变量 安装Eclips 这些网上都有,就不再详细介绍. 资源分享链接:http://pan.baidu.com/s/1v9Fw6 2.安装Tes ...

  2. 基于Java+HttpClient+TestNG的接口自动化测试框架(四)-------参数存取处理

    在真正开始接口测试之前,我们需要对参数的处理进行梳理.这里所说的“参数”,既包含之前在xml中的配置(我们称之为全局参数),也包含在每一条用例中书写的param.全局参数为固定不变的,而根据接口相应获 ...

  3. 基于Java+HttpClient+TestNG的接口自动化测试框架(八)------ 针对文件的处理

    在实际的接口测试中,有时需要根据情况进行文件的上传和下载.在文件数量比较小的时候,我们当然可以直接处理(比如若干个接口都用一个文件).但是,如果我们上传的文件需要使用不同文件夹里不同的文件,而且数量又 ...

  4. 【接口自动化】Python+Requests接口自动化测试框架搭建【一】

    公司项目启用新框架,前后端分离,所以接口测试成为测试工作中不可缺失的一个环节,现在将从0开始搭建接口自动化测试框架的路程,一步步记录下来. 开发语言我们采用Python+第三方库Requests,测试 ...

  5. 接口自动化测试框架-AIM3.0-开源+OOP

    这是3.0了,从1.0到2.0直接跨越到3.0,就是这么随意. 3.0的关键词一是开源,源码地址为https://github.com/dongfanger/AIM,二是OOP. 随着python的发 ...

  6. iOS回顾笔记(05) -- 手把手教你封装一个广告轮播图框架

    html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...

  7. Maven+TestNG+ReportNG/Allure接口自动化测试框架初探(上)

    转载:http://www.51testing.com/html/58/n-3721258.html 由于一直忙于功能和性能测试,接口自动化测试框架改造的工作被耽搁了好久.近期闲暇一些,可以来做点有意 ...

  8. jmeter+ant+jenkins搭建接口自动化测试环境

    jmeter+ant+jenkins搭建接口自动化测试环境(基于win) 1.jmeter jmeter依赖java运行环境,所以需要提前下载jdk并配置好环境变量 官网下载(http://jmete ...

  9. 基于maven+java+TestNG+httpclient+poi+jsonpath+ExtentReport的接口自动化测试框架

    接口自动化框架 项目说明 本框架是一套基于maven+java+TestNG+httpclient+poi+jsonpath+ExtentReport而设计的数据驱动接口自动化测试框架,TestNG ...

随机推荐

  1. jdk动态代理与cglib代理、spring aop代理实现原理

    原创声明:本博客来源与本人另一博客[http://blog.csdn.net/liaohaojian/article/details/63683317]原创作品,绝非他处摘取 代理(proxy)的定义 ...

  2. this web application instance has been stopped already.

    this web application instance has been stopped already. Could not load oracle/sql/converter_xcharset ...

  3. 读书笔记 effctive c++ Item 52 如果你实现了placement new,你也要实现placement delete

    1. 调用普通版本的operator new抛出异常会发生什么? Placement new和placement delete不是C++动物园中最常遇到的猛兽,所以你不用担心你对它们不熟悉.当你像下面 ...

  4. 不完全图解HTTP

    在2D平面上行走的时候,认识只局限于“点”,刚认识一个新的点,就把之前的那个点忘记了,捡了芝麻丢西瓜.只从3D视角俯瞰时,把这些点连接在一起,点成线,线成面时,才能有所顿悟.话不多说,这是我对HTTP ...

  5. 今天打补丁出问题了,害得我组长被扣了1k奖金。

    今天是第三次给mxdw打补丁和打包,外加公司高管说有一个东西必须要今天之内搞定外放. 我当时问策划为什么这么着急?策划说大佬决定的(这种做事方式真的很不习惯).我等屁民加班加点的搞事情,把功能搞出去了 ...

  6. 画地为Mask,随心所欲的高效遮罩组件[Unity]

    在上一篇博文"扔掉遮罩,更好的圆形Image组件"中,笔者改变Image的顶点数据,使得Image呈圆形显示,避免了Mask的使用,从而节省Drawcall消耗,提高渲染效率了.这 ...

  7. python-day2 字典

    ===========字典功能=============> dict.clear() -->清空字典 dict.keys() -->获取所有key dict.values() --& ...

  8. java局部/成员/静态/实例变量

    局部变量和成员变量主要是他们作用域的区别成员变量个是类内部:局部变量是定义其的方法体内部(或者方法体内部的某一程序块内——大括号,主要看定义的位置).另外,成员变量可以不显式初始化,它们可以由系统设定 ...

  9. WinRAR5.01注册码附注册机

    把下面的注册码复制到"记事本"中,另存为"rarreg.key"文件,放到WinRAR安装目录即完成注册.RAR registration datakjcy8U ...

  10. 在linux服务器上发布web应用的完整过程

    首先你要有一个完整的web应用的小Demo,一个简单的demo就可以了,但是要涉及到数据库,笔者这里简单的模拟一个登陆的过程. 在本地测试,访问项目: 键入账号密码,点击登陆: 就是这么个简单的动作, ...