框架預(yù)覽
IntelliJ IDEA
IntelliJ IDEA是公認為最好的java開發(fā)工具之一拥褂,已內(nèi)置Gradle插件缕溉。免費版(Community)已足夠滿足需求吕喘,下載安裝漂辐,Next...
Gradle
Gradle是一個基于Apache Ant和Apache Maven概念的項目自動化建構(gòu)工具显拳。拋棄了基于XML的各種繁瑣配置--易用顏值很重要括细!
前提:JDK環(huán)境伪很。
配置Gradle環(huán)境:官網(wǎng)上有多種安裝配置方法,不怕折騰的可以嘗試Gradle Wrapper奋单、SDKMAN等方法锉试。這里采用常規(guī)的Install manually方法即可,與JDK的配置方法相似:
下載zip > 解壓 > 配置環(huán)境變量Gradle_HOME览濒、PATH在IntelliJ IDEA中創(chuàng)建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執(zhí)行測試用例時贷笛,報錯应又,執(zhí)行g(shù)radle 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相關(guān)依賴乏苦,如果不添加會報錯株扛,上面的build.gradle中已添加。
jsoup
jsoup是一款Java 的HTML解析器汇荐。重點是它提供了一套非常省力的API洞就,構(gòu)造接口請求非常便捷。
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進行簡單封裝的開源工具類庫拢驾,使用它能夠簡化應(yīng)用程序的開發(fā)奖磁,同時也不會影響程序的性能。
JsonPath
JsonPath對于 JSON 來說相當于 XPATH 對于 XML繁疤。這是一個簡單的從文檔中抽取指定信息的工具咖为,提供多種語言實現(xiàn)版本,包括:Javascript, Java, Python 和 PHP稠腊。
- 不使用Gson躁染、fastjson等解析,是因為對于測試來說架忌,大多數(shù)情況下只是要獲得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中文亂碼破加,已有解決方案,轉(zhuǎn)載參考雹嗦。
測試執(zhí)行
- 在工程目錄下在執(zhí)行
gradle test
- 有兩份測試報告:一份是Gradle本身產(chǎn)生的(...\IdeaProjects\APITest\build\reports\tests\test\index.html)范舀,一份是ReportNG產(chǎn)生的(D:\IdeaProjects\APITest\build\reports\tests\test\html\index.html)。