框架预览
IntelliJ IDEA
IntelliJ IDEA是公认为最好的java开发工具之一,已内置Gradle插件。免费版(Community)已足够满足需求,下载安装,Next...
Gradle
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。抛弃了基于XML的各种繁琐配置--易用颜值很重要!
前提:JDK环境。
配置Gradle环境:官网上有多种安装配置方法,不怕折腾的可以尝试Gradle Wrapper、SDKMAN等方法。这里采用常规的Install manually方法即可,与JDK的配置方法相似:
下载zip > 解压 > 配置环境变量Gradle_HOME、PATH在IntelliJ IDEA中创建Gradle工程:
File > New > Project > Gradle > Next...
- 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插件,美化测试报告。
- ReportNG中文乱码,已有解决方案,转载参考。
测试执行
- 在工程目录下在执行
gradle test
- 有两份测试报告:一份是Gradle本身产生的(...\IdeaProjects\APITest\build\reports\tests\test\index.html),一份是ReportNG产生的(D:\IdeaProjects\APITest\build\reports\tests\test\html\index.html)。