压力测试应用工具。

fuzzing的Python项目详细描述


https://travis-ci.org/stbraun/fuzzing.svg?branch=masterhttps://readthedocs.org/projects/fuzzing/badge/?version=master

应用程序的压力测试可以用很多不同的方法来完成。 此软件包提供了一个易于使用的工具,用于对获取文件的应用程序进行压力测试 作为参数。编辑器、图像查看器、编译器和更多的应用程序类浮现在脑海中。

压力测试基于一组给定的文件,二进制或文本那些文件被拿走了 随机修改一些字节(模糊)。然后应用程序得到 用模糊文件执行。一次又一次的重复强调了它的健壮性 申请的输入数据有缺陷

教程和api文档可以在ReadTheDocs上找到。

有什么新消息?

现在您可以在多个进程中运行测试。测试结果合并打印。

安装

最简单的安装方法是通过easy_installpip

$ pip install fuzzing

有一些与功能相关的测试可以使用behave和单元测试运行 使用pytestnosetest可运行

示例

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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java无法使用JAXB配置Moxy   java如何让我的简单Swing telnet客户端正确显示字符?   java中从可运行线程调用主线程的多线程处理   java数据源。EBJ3会话bean中的getConnection()   使用java和正则表达式从xml文件提取值时出现问题   java定制Jersy胡须Mvc   在Java中,“限制并发”是什么意思?   java有没有更干净的方法可以在这里使用Optional,而不在三个地方返回“NA”?   java Tomcat启动,然后崩溃,除非我打电话   java理解客户机和服务器   java时间戳将在视图对象>实体转换期间丢失   如何在java中返回布尔值(基元)?   java使用spring mvc设置日志记录,希望仅对我的代码进行跟踪/调试   用Jackson解析嵌套对象