压力测试应用工具。

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仿射变换以旋转通用路径   IntelliJ IDEA中的java代码标记为编译器错误,在Eclipse中可以正常工作   java ArrayList的containsAll返回了错误的值   如何在安卓中的片段活动中添加java代码   java通过使用netbeans调用jbutton,将带有行的jbutton添加到jtable中   java在更新arrayAdapter/listView之前更新最终列表   java如何在另一个项目中导入包含AspectJ方面和注释的项目   为什么我的java布尔测试总是失败?   Eclipse中的java自动激活   在Bluetooth for Java(更具体地说是Android)之上是否有TCP/IP协议栈实现?   java Android Studio通过intent传递ArrayList并填充ListView