下载源码并配置环境
在官网获取源码后,并在虚拟环境中配置python=3.8.2和.NET6.0 创建restler_bin目录,切换到根目录下运行下面的指令构建 RESTler 工具,并将其安装到指定的目录
python ./build-restler.py --dest_dir <full path to restler_bin above>
快速上手
进入根目录下的demo_server文件夹下,安装对应的依赖项
pip install -r requirements.txt
# 在终端启动demo_server
python demo_server/app.py
# 可在本地8888端口查看swagger规范
http://localhost:8888/docs
一、编译
# 先创建新目录demo-server-test
cd demo-server-test
# 复制一份swagger.json文件到demo-server-test
# 然后,通过restler_bin\restler目录下的Restler.exe文件编译demo-server-test文件夹中的swagger.json文件
# 该命令会在同级目录下创建一个compile文件夹,并将编译结果存放在其中,compile文件夹放在demo-server-test中
..\restler_bin\restler\Restler.exe compile --api_spec swagger.json
二、测试
# 激活虚拟环境,保证demo_server仍在运行,然后开始测试,测试完会生成Test和RestlerLogs两个文件夹
..\restler_bin\restler\restler.exe test --grammar_file dCompile\grammar.py --dictionary_file Compile\dict.json --settings Compile\engine_settings.json --no_ssl
三、Fuzz-lean模式
..\restler_bin\restler\restler.exe fuzz-lean --grammar_file Compile\grammar.py --dictionary_file Compile\dict.json --settings Compile\engine_settings.json --no_ssl
四、fuzzing
..\restler_bin\restler\restler.exe fuzz --grammar_file Compile\grammar.py --dictionary_file Compile\dict.json --settings Compile\engine_settings.json --no_ssl --time_budget 1
五、测试其他REST API
以gitlab为例:
最新的规范文件(openapi: 3.0.1 version:v4)编译会报错:Unhandled exception. System.ArgumentException: Invalid array schema: found array property without a declared element 但可以用一些简单的用于测试的gitlab API的swagger规范,在编译之前,需将访问地址改为自己部署的访问地址