# 创建测试用例
$ vim case.frank
url="https://httpbin.org"
// 一个 POST 请求
POST /post Post json data
header["Accept"] = "application/json"
header["Content-Type"] = "application/json"
json.key0 = "value0"
json.key1 = "value1"
list=[]
list.push("value3")
list.push("value4")
json.key2 = list
Response
must(status==200)
j = JSON.parse(body)
myip = j.origin // 创建个新变量
// 一个 GET 请求
GET /etag/:myip Just a GET request
query.key0 = myip // 使用之前创建的变量
Response
must(status==200)
# 运行测试用例
$ frank
# 自动生成Markdown接口文档
$ frank -m > api.md
case.frank 可兼容javascript
1
fuckgfwfuckgfw OP 喜欢 Cli 工具的 Linux 和 MacOS 同学可以一叙
|
2
xlvecle 2017-11-23 11:00:34 +08:00
有没有和 curl 或者 httpie 的对比
|
3
fuckgfwfuckgfw OP 主要想哪方面的对比
|
4
xwhxbg 2017-11-23 11:14:08 +08:00
https://github.com/marcusolsson/tui-go/blob/master/example/http/screenshot.png
这个才叫类似 postman 吧。。。。你这还要写脚本呢 |
5
fuckgfwfuckgfw OP ### 一开始测试 API,自己是写 curl 的 wrapper。
类似这样 api.sh ``` ... for((i=1;i<=$#;i++)) do a=$(eval echo \$$i) # method if [ $i -eq 1 ] then method=$a case $a in 'get') m='-G' ;; 'post') m='-X POST' ;; 'put') m='-X PUT' ;; 'delete') m='-X DELETE' ;; esac continue fi ... ``` 慢慢的发现还是不太方便 ### 于是就用 Postman MacOS Client 但是请求经常卡住,而且不太习惯 GUI 总得点来点去 ### 于是 Frank 就出现了 写一个文本,然后自动运行,check |
6
fuckgfwfuckgfw OP @xwhxbg You are right.
|
7
0ZXYDDu796nVCFxq 2017-11-23 11:25:18 +08:00
感觉 Python + requests 封装一下,功能、便捷性、可扩展性都更好……
命令行的话,还是写单元测试和回归测试比较靠谱 |
8
xionger 2017-11-23 11:30:50 +08:00 via Android 2
JS 语法,不错
|
9
iyaozhen 2017-11-23 11:35:49 +08:00 via Android
这样的话有个问题,有些业务逻辑的接口不好写吧。比如接口间依赖,需要生成 token 啥的
|
10
iyaozhen 2017-11-23 11:37:07 +08:00 via Android
|
11
fuckgfwfuckgfw OP @xwhxbg GUI 或者 这个 TUI, 还是 CLI, 看自己习惯吧
|
12
xionger 2017-11-23 12:35:28 +08:00
@iyaozhen
正在用,可以这样 POST /api/auth/code 登录发送验证码 header["Accept"] = "application/json" header["Content-Type"] = "application/json" json.Mobile = "+8613800138008" Response must(status==200) j = JSON.parse(body) _Token = j._Token POST /api/auth 登录 header["Accept"] = "application/json" header["Content-Type"] = "application/json" json.Mobile = "+8613800138008" json._Token = _Token json._Code = "1111" Response must(status==200) |
13
weakish 2017-11-23 12:53:48 +08:00
IntelliJ 也有类似的功能,还可以直接把请求什么的写文件,批量跑。
|
14
fuckgfwfuckgfw OP @weakish 嗯 属于 IDE。
这个算是给喜欢在纯命令行下工作的同学一个选择吧。 |
15
fuckgfwfuckgfw OP |
16
fuckgfwfuckgfw OP |