压力测试应用工具。
fuzzing的Python项目详细描述
应用程序的压力测试可以用很多不同的方法来完成。 此软件包提供了一个易于使用的工具,用于对获取文件的应用程序进行压力测试 作为参数。编辑器、图像查看器、编译器和更多的应用程序类浮现在脑海中。
压力测试基于一组给定的文件,二进制或文本那些文件被拿走了 随机修改一些字节(模糊)。然后应用程序得到 用模糊文件执行。一次又一次的重复强调了它的健壮性 申请的输入数据有缺陷
教程和api文档可以在ReadTheDocs上找到。
有什么新消息?
现在您可以在多个进程中运行测试。测试结果合并打印。
安装
最简单的安装方法是通过easy_install或pip
$ pip install fuzzing
有一些与功能相关的测试可以使用behave和单元测试运行 使用pytest或nosetest可运行
示例
from fuzzing.fuzzer import FuzzExecutor # Files to use as initial input seed. file_list = ["./features/data/t1.pdf", "./features/data/t3.pdf", "./features/data/t2.jpg"] # List of applications to test. apps_under_test = ["/Applications/Adobe Reader 9/Adobe Reader.app/Contents/MacOS/AdobeReader", "/Applications/PDFpen 6.app/Contents/MacOS/PDFpen 6", "/Applications/Preview.app/Contents/MacOS/Preview", ] number_of_runs = 13 def test(): fuzz_executor = FuzzExecutor(apps_under_test, file_list) fuzz_executor.run_test(number_of_runs) return fuzz_executor.stats def main(): stats = test() print(stats)
使用预先构建的测试运行器和配置
为了方便起见,提供了一个测试运行器,它采用测试配置。
配置yaml文件示例:
version: 1 seed_files: ['requirements.txt', 'README.rst'] applications: ['MyFunnyApp', 'AdobeReader'] runs: 800 processors: 4 processes: 10
然后在终端会话中调用测试运行程序:
$ run_fuzzer.py test.yaml
这将按配置执行测试,完成后打印测试结果:
$ run_fuzzer.py test.yaml Starting up ... ... finished Test Results: MyFunnyApp succeeded: 4021 failed: 95 AdobeReader succeeded: 3883 failed: 1
版权和许可证
- Copyright 2015, Stefan Braun
- License: MIT