移动端接口自动化框架:IntelliJ IDEA+Gradle+jsoup+DbUtils+JsonPath+TestNG+ReportNG(持续完善中...)

框架预览

《移动端接口自动化框架:IntelliJ IDEA+Gradle+jsoup+DbUtils+JsonPath+TestNG+ReportNG(持续完善中...)》 Paste_Image.png

IntelliJ IDEA

IntelliJ IDEA是公认为最好的java开发工具之一,已内置Gradle插件。免费版(Community)已足够满足需求,下载安装,Next…

Gradle

Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。抛弃了基于XML的各种繁琐配置–易用颜值很重要!

  • 前提:JDK环境。

  • 配置Gradle环境:官网上有多种安装配置方法,不怕折腾的可以尝试Gradle WrapperSDKMAN等方法。这里采用常规的Install manually方法即可,与JDK的配置方法相似:
    下载zip > 解压 > 配置环境变量Gradle_HOME、PATH

  • 在IntelliJ IDEA中创建Gradle工程:
    File > New > Project > Gradle > Next…

《移动端接口自动化框架:IntelliJ IDEA+Gradle+jsoup+DbUtils+JsonPath+TestNG+ReportNG(持续完善中...)》 Paste_Image.png
《移动端接口自动化框架:IntelliJ IDEA+Gradle+jsoup+DbUtils+JsonPath+TestNG+ReportNG(持续完善中...)》
《移动端接口自动化框架:IntelliJ IDEA+Gradle+jsoup+DbUtils+JsonPath+TestNG+ReportNG(持续完善中...)》 Paste_Image.png

  • Gradle配置文件
    将工程所需的依赖包都写到build.gradle文件中,IntelliJ IDEA会自动加载。
dependencies {
    compile 'org.jsoup:jsoup:1.10.2'
    compile 'com.jayway.jsonpath:json-path:2.2.0'
    compile 'commons-codec:commons-codec:1.10'
    compile 'commons-dbutils:commons-dbutils:1.6'
    compile 'mysql:mysql-connector-java:6.0.6'
    compile 'com.google.inject:guice:4.1.0'
    compile 'velocity:velocity:1.4'
    testCompile 'org.uncommons:reportng:1.1.4'
    testCompile 'org.testng:testng:6.0.1'
}
test{
    useTestNG(){
        suites(file('src/test/resources/testng.xml'))
    }
    options {
        listeners << 'org.uncommons.reportng.HTMLReporter'
        listeners << 'org.uncommons.reportng.JUnitXMLReporter'
    }
}

ps:gradle test执行测试用例时,报错,执行gradle test –info或在…\IdeaProjects\APITest\build\reports\tests\test\index.html文件查看

Caused by: java.lang.ClassNotFoundException: com.google.inject.Injector
Caused by: java.lang.ClassNotFoundException: org.apache.velocity.context.Context

原因是guice、velocity都是ReportNG相关依赖,如果不添加会报错,上面的build.gradle中已添加。

jsoup

jsoup是一款Java 的HTML解析器。重点是它提供了一套非常省力的API,构造接口请求非常便捷。

Connection connection = Jsoup.connect(String url).header(String name, String value).userAgent(String userAgent).method(Method method).data(String name, String value)...

Request req = connection.request();

Response resp = connection.execute();

DbUtils

Commons DbUtils是Apache组织提供的一个对JDBC进行简单封装的开源工具类库,使用它能够简化应用程序的开发,同时也不会影响程序的性能。

JsonPath

JsonPath对于 JSON 来说相当于 XPATH 对于 XML。这是一个简单的从文档中抽取指定信息的工具,提供多种语言实现版本,包括:Javascript, Java, Python 和 PHP。

  • 不使用Gson、fastjson等解析,是因为对于测试来说,大多数情况下只是要获得json中的特定值进行断言等其他操作,JsonPath语法简单,可以快速获得。

TestNG+ReportNG

TestNG is a testing framework inspired from JUnit and NUnit but introducing some new functionalities that make it more powerful and easier to use.目前流行的java测试框架。

ReportNG:An HTML/XML Reporting Plug-in for TestNG。TestNG插件,美化测试报告。

测试执行

  • 在工程目录下在执行gradle test

《移动端接口自动化框架:IntelliJ IDEA+Gradle+jsoup+DbUtils+JsonPath+TestNG+ReportNG(持续完善中...)》 Paste_Image.png

  • 有两份测试报告:一份是Gradle本身产生的(…\IdeaProjects\APITest\build\reports\tests\test\index.html),一份是ReportNG产生的(D:\IdeaProjects\APITest\build\reports\tests\test\html\index.html)。

《移动端接口自动化框架:IntelliJ IDEA+Gradle+jsoup+DbUtils+JsonPath+TestNG+ReportNG(持续完善中...)》 Paste_Image.png
《移动端接口自动化框架:IntelliJ IDEA+Gradle+jsoup+DbUtils+JsonPath+TestNG+ReportNG(持续完善中...)》 Paste_Image.png
《移动端接口自动化框架:IntelliJ IDEA+Gradle+jsoup+DbUtils+JsonPath+TestNG+ReportNG(持续完善中...)》 Paste_Image.png

    原文作者:臂力棒在想
    原文地址: https://www.jianshu.com/p/204584f97f11
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞