接口测试框架Karate入门

有效的接口测试可以为我们的接口质量保驾护航。Karate的中文翻译是空手道,是一款接口测试框架,BDD类型,非程序员也能上手。
你能学到什么
你可以通过这篇教程学会如何通过jar包方式使用Karate进行接口测试
你需要什么
环境准备
本篇教程通过命令行执行jar文件的方式来进行接口测试编写。
首先创建工作目录,进入这个目录
1 2
| $ mkdir KarateTest $ cd KarateTest
|
下载执行文件。
通过https://dl.bintray.com/ptrthomas/karate/下载最新jar包,下载后保存到项目根目录中,现在我们的项目有了第一个文件,结构如下:
1 2 3 4 5
| $ tree . └── karate-0.9.4.jar
0 directories, 1 file
|
编写第一个接口用例文件HttpbinGet.feature
,内容如下
1 2 3 4 5 6
| Feature: Httbin.org get method test
Scenario: Get should be ok Given url 'http://httpbin.org/get' When method get Then status 200
|
添加完用例后目录结构为
1 2 3 4 5 6
| $ tree . ├── HttpbinGet.feature └── karate-0.9.4.jar
0 directories, 2 files
|
执行用例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| $ java -jar karate-0.9.4.jar HttpbinGet.feature 23:07:19.174 [main] INFO com.intuit.karate.Main - Karate version: 0.9.4 23:07:19.617 [ForkJoinPool-1-worker-1] WARN com.intuit.karate - skipping bootstrap configuration: could not find or read file: classpath:karate-config.js 23:07:19.843 [ForkJoinPool-1-worker-1] DEBUG com.intuit.karate - request: 1 > GET http://httpbin.org/get 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: httpbin.org 1 > User-Agent: Apache-HttpClient/4.5.5 (Java/1.8.0_231)
23:07:20.634 [ForkJoinPool-1-worker-1] DEBUG com.intuit.karate - response time in milliseconds: 788.74 1 < 200 1 < Access-Control-Allow-Credentials: true 1 < Access-Control-Allow-Origin: * 1 < Connection: keep-alive 1 < Content-Type: application/json 1 < Date: Sat, 23 Nov 2019 15:07:20 GMT 1 < Referrer-Policy: no-referrer-when-downgrade 1 < Server: nginx 1 < X-Content-Type-Options: nosniff 1 < X-Frame-Options: DENY 1 < X-XSS-Protection: 1; mode=block { "args": {}, "headers": { "Accept-Encoding": "gzip,deflate", "Host": "httpbin.org", "User-Agent": "Apache-HttpClient/4.5.5 (Java/1.8.0_231)" }, "origin": "111.192.170.27, 111.192.170.27", "url": "https://httpbin.org/get" }
23:07:20.684 [pool-1-thread-1] INFO com.intuit.karate.Runner - <<pass>> feature 1 of 1: HttpbinGet.feature --------------------------------------------------------- feature: HttpbinGet.feature report: target/surefire-reports/HttpbinGet.json scenarios: 1 | passed: 1 | failed: 0 | time: 1.0301 --------------------------------------------------------- Karate version: 0.9.4 ====================================================== elapsed: 1.41 | threads: 1 | thread time: 1.03 features: 1 | ignored: 0 | efficiency: 0.73 scenarios: 1 | passed: 1 | failed: 0 ======================================================
|
可视化报告地址:target/cucumber-html-reports/overview-features.html
