1分钟入门接口自动化框架Karate
介紹
在這篇文章中,我們將介紹一下開源的Web-API自動化測試框架——Karate
Karate是基于另一個BDD測試框架Cucumber來建立的,并且共用了一些相同的思想。其中之一就是使用Gherkin文件,該文件描述了被測試的功能
與Cucumber不同的是測試用例不需要用Java編寫,并且被完整的描述在Gherkin文件中
通過Karate,您可以編寫任何類型的Web服務端的測試腳本,并檢查響應是否符合預期
Karate的驗證引擎可以靈活的比較兩個JSON或XML文件內容,不受空格和數據順序的影響
有關Karate的更詳細的內容,請參考Karate官方介紹
特點
1.建立在Cucumber-JVM基礎上
2.可以像標準的Java工程一樣運行測試并且產生報告
3.測試代碼的開發不需要掌握任何的Java知識
4.即使對非編程人員,測試代碼也很容易編寫
環境需求
1.JDK1.8及以上
2.Maven
3.IDEA
使用
創建工程
1.打開IDEA,File|New|Project
2.選擇Maven工程,點擊Next
3.輸入Maven基本信息,點擊Next
4.輸入工程名稱和存放路徑,點擊Finish
添加依賴
要在Maven項目中使用Karate,需要將karate-apache依賴項添加到pom.xml,如果實現JUnit測試還需要添加karate-junit4依賴
|
<dependencies> <dependency> </dependencies> |
設置測試資源文件目錄,建議測試用例文件和java文件放在同一個目錄下,遇到龐大的工程的時候方便管理,不必在文件夾src/test/java和src/test/resources文件夾之間切換,可以在pom.xml的
|
<testResources> |
服務端模擬
為了演示REST API,我們使用WireMock服務器
在pom.xml中添加mock服務依賴配置
|
<dependency> |
編寫一個啟動服務的類
|
package server; import com.github.tomakehurst.wiremock.WireMockServer; import static com.github.tomakehurst.wiremock.client.WireMock.*; public class StartServer { private static WireMockServer wireMockServer = new WireMockServer(8080); public static void startServer(){ stubFor( stubFor( } public static void main(String... args){ |
用例文件編寫
一個用例文件以“ .feature”擴展名保存。
文件以Feature關鍵字開頭,在同一行跟著所測試的功能名稱
一個用例文件包含不同的測試場景,每個場景都以關鍵字Scenario開頭,并且包含多個步驟。這些步驟包含關鍵字Given,When,Then,And和But
有關Cucumber和Gherkin結構的更多信息,請點擊此處
|
Feature: Learn How to use Karate for testing. Scenario: Testing valid GET endpoint Given url 'http://localhost:8080/user/get' Scenario: Testing the exact response of a GET endpoint Given url 'http://localhost:8080/user/get' Scenario: Testing that GET response contains specific field Given url 'http://localhost:8080/user/get' |
我向大家推薦一個學習資料領取的qq群。這套視頻資料詳細講解了(自動化編程,mysql調優,自動化框架使用)。
對以上測試資料,測試技術感興趣的朋友,歡迎加QQ群:175317069,一起學習,相互討論。
Runner類編寫
建議放在用例文件同級目錄下
我們可以通過將Karate與JUnit集成來運行我們的測試
我們將使用@CucumberOptions注解指定Feature文件的具體位置
|
package demo; import com.intuit.karate.junit4.Karate; @RunWith(Karate.class) public class DemoRunner { } |
運行用例
1.先啟動服務
右擊StartServer類選擇Run StartServer.main()啟動服務
2.運行用例
右擊DemoRunner類選擇Run DemoRunner運行測試
查看報告
在項目的target/surfire-reports目錄下有TEST-demo.demo.html文件,瀏覽器中打開即可看到結果
持續集成
可以借助于jenkins完成自動化測試并且jenkins提供插件cucumber-reports可以展示可讀性強的自動化測試報告
需要修改Runner繼承KarateRunner,先引入Karate-testng依賴
|
<dependency> |
修改DemoRunner,注意配置CucumberOptions,要產生json格式的報告,cucumber-reports插件會去解析該文件并生成報告
|
package demo; import com.intuit.karate.junit4.Karate; import com.intuit.karate.testng.KarateRunner; @CucumberOptions(features = "classpath:demo/demo. feature",format={"pretty", "html:reports","json:report.json"}) public class DemoRunner extends KarateRunner { } |
jenkins中cucumber-reports配置請參考網絡資源
jenkins配置命令行運行指令
|
rm -rf ${WORKSPACE}/report.json |
jenkins報告展示
總結
以上是生活随笔為你收集整理的1分钟入门接口自动化框架Karate的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: console.dir有很多浏览器,系统
- 下一篇: 【Telerik】<telerik