复现RESTler-fuzzer的demo测试

下载源码并配置环境

  • 在官网获取源码后,并在虚拟环境中配置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在持续运行

一、编译

# 先创建新目录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规范,在编译之前,需将访问地址改为自己部署的访问地址
      在这里插入图片描述
  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值