❶ Python渗透测试工具都有哪些
Scapy, Scapy3k: 发送,嗅探,分析和伪造网络数据包。可用作交互式包处理程序或单独作为一个库
pypcap, Pcapy, pylibpcap: 几个不同 libpcap 捆绑的python库
libdnet: 低级网络路由,包括端口查看和以太网帧的转发
dpkt: 快速,轻量数据包创建和分析,面向基本的 TCP/IP 协议
Impacket: 伪造和解码网络数据包,支持高级协议如 NMB 和 SMB
pynids: libnids 封装提供网络嗅探,IP 包碎片重组,TCP 流重组和端口扫描侦查
Dirtbags py-pcap: 无需 libpcap 库支持读取 pcap 文件
flowgrep: 通过正则表达式查找数据包中的 Payloads
Knock Subdomain Scan: 通过字典枚举目标子域名
SubBrute: 快速的子域名枚举工具
Mallory: 可扩展的 TCP/UDP 中间人代理工具,可以实时修改非标准协议
Pytbull: 灵活的 IDS/IPS 测试框架(附带超过300个测试样例)
调试和逆向工程
Paimei: 逆向工程框架,包含PyDBG, PIDA , pGRAPH
Immunity Debugger: 脚本 GUI 和命令行调试器
mona.py: Immunity Debugger 中的扩展,用于代替 pvefindaddr
IDAPython: IDA pro 中的插件,集成 Python 编程语言,允许脚本在 IDA Pro 中执行
PyEMU: 全脚本实现的英特尔32位仿真器,用于恶意软件分析
pefile: 读取并处理 PE 文件
pydasm: Python 封装的libdasm
PyDbgEng: Python 封装的微软 Windows 调试引擎
uhooker: 截获 DLL 或内存中任意地址可执行文件的 API 调用
diStorm: AMD64 下的反汇编库
python-ptrace: Python 写的使用 ptrace 的调试器
vdb/vtrace: vtrace 是用 Python 实现的跨平台调试 API, vdb 是使用它的调试器
Androguard: 安卓应用程序的逆向分析工具
Capstone: 一个轻量级的多平台多架构支持的反汇编框架。支持包括ARM,ARM64,MIPS和x86/x64平台
PyBFD: GNU 二进制文件描述(BFD)库的 Python 接口
Fuzzing
Sulley: 一个模糊器开发和模糊测试的框架,由多个可扩展的构件组成的
Peach Fuzzing Platform: 可扩展的模糊测试框架(v2版本 是用 Python 语言编写的)
antiparser: 模糊测试和故障注入的 API
TAOF: (The Art of Fuzzing, 模糊的艺术)包含 ProxyFuzz, 一个中间人网络模糊测试工具
untidy: 针对 XML 模糊测试工具
Powerfuzzer: 高度自动化和可完全定制的 Web 模糊测试工具
SMUDGE: 纯 Python 实现的网络协议模糊测试
Mistress: 基于预设模式,侦测实时文件格式和侦测畸形数据中的协议
Fuzzbox: 媒体多编码器的模糊测试
Forensic Fuzzing Tools: 通过生成模糊测试用的文件,文件系统和包含模糊测试文件的文件系统,来测试取证工具的鲁棒性
Windows IPC Fuzzing Tools: 使用 Windows 进程间通信机制进行模糊测试的工具
WSBang: 基于 Web 服务自动化测试 SOAP 安全性
Construct: 用于解析和构建数据格式(二进制或文本)的库
fuzzer.py(feliam): 由 Felipe Andres Manzano 编写的简单模糊测试工具
Fusil: 用于编写模糊测试程序的 Python 库
Web
Requests: 优雅,简单,人性化的 HTTP 库
HTTPie: 人性化的类似 cURL 命令行的 HTTP 客户端
ProxMon: 处理代理日志和报告发现的问题
WSMap: 寻找 Web 服务器和发现文件
Twill: 从命令行界面浏览网页。支持自动化网络测试
Ghost.py: Python 写的 WebKit Web 客户端
Windmill: Web 测试工具帮助你轻松实现自动化调试 Web 应用
FunkLoad: Web 功能和负载测试
spynner: Python 写的 Web浏览模块支持 Javascript/AJAX
python-spidermonkey: 是 Mozilla js 引擎在 Python 上的移植,允许调用 Javascript 脚本和函数
mitmproxy: 支持 SSL 的 HTTP 代理。可以在控制台接口实时检查和编辑网络流量
pathod/pathoc: 变态的 HTTP/S 守护进程,用于测试和折磨 HTTP 客户端
❷ python怎么做接口测试工具
之前使用过urllib和urllib2做接口测试,在做的途中,感觉使用urllib2直接进行的get,post 请求并没有那么好用。作为测试人员,所需要的测试工具应当以方便为第一要务,测试的耗时只要是真正的无人值守,耗时不是太久的都可以接受。所以,本人又尝试了一个新的包:requests。
Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。Requests 的哲学是以 PEP 20 的习语为中心开发的,所以它比 urllib 更加 Pythoner。更重要的一点是它支持 Python3 !推荐一篇文章,上面有该包的详细说明传送门,以下只会写到我用到的部分,所以更多的了解需要自己去搜资料
好了,我们开始吧!!
接口测试中重要的部分:
1.get和post方法
2.用到的参数
3.请求头
4.cookie
5.日志输出
6.如何调试你的程序--借助fiddler
按照以上的顺序,我将一一说明我的搞法,因为编码能力有限,所以可能看着很low
一、get和post
requests包很好的实现了post和get方法,示例:
1 import requests2 response_get = requests.get(url, data, headers, cookies)3 response_post = requests.post(url, data, headers, cookies)
其他的访问方式如put,head等等,用法几乎都是如此,因为没用到,所以省略
现在一般的接口返回值有页面和json俩种,按照需求,可以分别使用response.text或者response.content获取,text获取的是unicode类型的返回值,而content返回值是str类型,所以我一般使用content来获取返回值,因为这样获取的返回值可以直接使用正则或者in的方式来验证返回值结果是否正确。
我自己为了实现接口的自动访问,所以又在requests上面加了一层封装,就像下面这样:
三、cookie
一款产品的接口测试中必定会使用登录状态,需要使用cookie实现,之前写过使用cookiejar获取cookie,requests中获取cookie的方法更为简单,不过首先你得知道是哪个接口set了cookie,不过一般是登录啦。登录接口访问之后set了cookie,那好,就去调用登录接口,然后拿到搞回来的cookie:
# 只需要这样!!login = requests.post(login_url, data=login_data, headers=login_header)
cookie = login.cookies
这个cookie就是登录状态了,拿着随便用,需要登录的就直接cookies=cookies
四、日志输出
这里注意看第二步中接口数据,有接口描述,也有接口是啥,第一步中又把content做成返回值了,具体拼接方式自己想吧,东西全有了,想写啥写啥,还可以加上获取本地时间的api获取接口运行时间,log文件该长啥样是门学问,这里就不献丑了。
五、借用fiddler调试你的脚本
requests允许使用代理访问,这有啥用,真有!fiddler是一款截包改包的工具,而且通过扩展可以进行请求间的比对,这样让你的程序访问的请求和真正正确的请求作对比,为啥我的程序访问出错?是不是缺了请求头?参数是不是丢了?cookie是不是少了?很容易看出来。写法如下:
proxies = { "http": "http://127.0.0.1:8888", "https": "http://127.0.0.1:8888"}
requests.post(url, proxies=proxies)
这样就可以走代理了,除fiddler以外还有charles和burp suite可以使用,具体看个人喜好吧。
❸ 用python的SimpleHTTPServer做了一个简单测试网页的服务器,但是一直没法解决shtml的支持问题,求教!!!
自己写的简易服务器,那就不便使用现存的一些SSI模块了
建议1、可以自写ssi模块,对所有的.shtml文件访问做单独解析,
先实现其中解析<!--#include-->一个标签。毕竟SSI只相当于一个较简的预处理器。
建议2,重定向。把所有的.shtml访问重定向到其他成熟的SSI服务器上。
❹ Python测试有什么用途
Python测试有什么用途
Python测试用途如下:
1、使用Python +Selenium实现web端的UI自动化
Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。
Python与Selenium结合能够很好的实现web端的UI级别的自动化。Selenium几乎能解决目前遇到的web页面中所有的定位难题,当然有些特殊的可以借助JavaScripts也可以实现。
2、使用Python + Requests实现接口测试
进入python requests官网看到的的第一句话是:Requests 唯一的一个非转基因的Python HTTP 库,人类可以安全享用。
通过requests库提供的各种API可以非常方便的模拟HTTP请求,实现接口自动化测试。
3、使用Python + Appium实现app自动化测试
Appium是一个自动化测试开源工具,支持 iOS 平台和Android 平台上的原生应用,web 应用和混合应用。
所谓的 移动原生应用 是指那些用iOS 或者 Android SDK 写的应用。所谓的 移动 web 应用 是指使用移动浏览器访问的应用(Appium 支持 iOS 上的Safari 和 Android 上的 Chrome)。所谓的“混合应用”是指原生代码封装网页视图——原生代码和web 内容交互。比如,像 Phonegap,可以帮助开发者使用网页技术开发应用,然后用原生代码封装,这些就是混合应用。
重要的是,Appium 是一个跨平台的工具:它允许测试人员在不同的平台(iOS,Android)使用同一套API来写自动化测试脚本,这样大大增加了iOS 和 Android 测试套件间代码的复用性。
Appium也是多语言支持,当然也是支持python的,运用python + Appium可以实现跨平台的app UI自动化测试。
更多技术请关注Python视频教程。
❺ 接口自动化测试工具有哪些
接口自动化工具有以下:
1、QTP。是quicktest Professional的简称,是一种自动测试工具。使用QTP的目的是想用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。因此你在测试前要考虑好如何对应用程序进行测试,例如要测试那些功能、操作步骤、输入数据和期望的输出数据等。
2、WinRunner。是一种企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。通过自动录制、检测和回放用户的应用操作,WinRunner能够有效地帮助测试人员对复杂的企业级应用的不同发布版进行测试,提高测试人员的工作效率和质量,确保跨平台的、复杂的企业级应用无故障发布及长期稳定运行。
3、AdventNetQEngine。是一个应用广泛且独立于平台的自动化软件测试工具,可用于Web功能测试、web性能测试、Java应用功能测试、Java API测试、SOAP测试、回归测试和Java应用性能测试。
❻ Python做软件自动化测试的入门提问
同在软件测试岗位。由于同样初学python,所以没有太多的实践经验。
使用python的单元测试框架,可以建立测试类,构造测试集。
测试类中包含了common的测试方法定义,包括测试开始前建立测试环境的setUp方法和测试完成后清理还原环境的tearDown方法,最好按照约定规则(以test开头)来命名所有的测试方法。
测试集允许你根据测试策略组合不同的测试用例并实施。
下面两篇文章推荐看看:
http://www.ibm.com/developerworks/cn/linux/l-pyunit/
http://www.cnblogs.com/coderzh/archive/2010/08/23/custom-python-unittestoutput-as-gtest.html
有一个问题我还没找到答案,就是如何让单元测试框架的log输出到文件(默认输出到控制台)。
❼ python http接口测试脚本怎么写
根据Testcase的具体业务逻辑用事先准备好的测试数据去调用封装好的API接口,验证实际返回结果是否与预期返回结果一致.
测试数据可以以各种形式存放,如Excel数据表:
TestCaseName uname method Expected Result
TestCase1 aaaa GET ....
TestCase2 aaaa POST ....
TestCase3 bbbb GET ....
❽ Python什么爬虫库好用
请求库:
1. requests 这个库是爬虫最常用的一个库
2. Selenium Selenium 是一个自动化测试工具,利用它我们可以驱动浏览器执行特定的动作,如点击、下拉等操作 对于一些用JS做谊染的页面来说,这种抓取方式是非常有效的。
3.ChomeDrive 安装了这个库,才能驱动Chrome浏览器完成相应的操作
4.GeckoDriver 使用W3C WebDriver兼容客户端与基于Gecko的浏览器进行交互的代理。
5.PhantomJS PhantomJS 是一个无界面 、可脚本编程的 WebKit 浏览器引擎,它原生支持多种Web标准:Dom操作,css选择器,json,Canvas以及SVG。
6.aiohttp 之前接收requests库是一个阻塞式HTTP请求库,当我们发送一个请求后。程序会一直等待服务器响应,直到服务器响应后,程序才会最下一步处理。其实,这个过程比较耗时间。如果程序可以在等待的过程中做一些其他的事情,如进行请求的调度,响应的处理等,那么爬虫的效率就会比之前的那种方式有很大的提升。 而aiohttp就是这样一个提供异步web服务的库。使用说这个库用起来还是相当方便的。
解析库:
1.lxml lxml是python的一个解析库,这个库支持HTML和xml的解析,支持XPath的解析方式,而且效率也是非常高的,深受广大程序员的热爱
2.Beautiful Soup Beautiful Soup也是python里一个HTML或XMl的解析库,它可以很方便的懂网页中提取数据,拥有强大的API和多种解析方式。
3.pyquery 同样是一个强大的网页解析工具,它提供了和 jQuery 类似的语法来解析HTML 文梢,
数据库:
1.mysql 数据库
2.MongoDB Mo goDB 是由 ++语言编写的非关系型数据库, 是一个基于分布式文件存储的开源数据库系统内容存储形式类似 JSON 对象,它的字段值可以包含其他文档、数组及文档数组,非常灵活
3.Redis 是一个基于 存的高效的非关系型数据库,
存储库:
1.PyMySOL
2.PyMongo
3.redis-py
4.RedisDump
web库:
1.Flask 是一个轻量级的Web服务程序,它简单,易用,灵活
2.Tornado 是一个支持异步的Web框架,通过使用非阻塞I/O流,可以支持成千上万的开放式连接。