`

用Python写了一个测试Web服务的简单工具

阅读更多
写了一个测试和分析Web服务的简单工具,功能简单:)
#!/usr/bin/env python
# -*- coding: cp936 -*-
# Author: Jamsa

import sys
from SOAPpy import WSDL

class Analyzer:
    def __init__(self,wsdlurl):
        self.wsdlurl = wsdlurl
        self.server = WSDL.Proxy(wsdlurl)
    
    #获取所有方法对象
    def getMethods(self):
        return self.server.methods

		#获取方法的详细信息
    def getMethodInfo(self,methodname):
        callInfo = self.server.methods[methodname]
        return callInfo

#获取方法信息
def methodsInfo(analyzer):
    methods = analyzer.getMethods()
    print 'Total: ',len(methods),' methods'
    for methodname in methods.keys():
        print 'Method: \n\t',methodname
        method = methods[methodname]

        inparams = method.inparams
        print 'Input: '
        for inparam in inparams:
            print '\t',inparam.name,'\t',inparam.type

        outparams = method.outparams
        print 'Output: '
        for outparam in outparams:
            print '\t',outparam.name,'\t',outparam.type

#执行方法,只能是字符串或数字类型:)聊胜于无
def executeMethod(analyzer,methodname,params):
    print 'Execute remote method: ',methodname,'with params: ',params
    #method = analyzer.getMethods[methodname]
    proxy = analyzer.server
    paramstr = ''
    for param in params:
        paramstr = '"' + param + '",'
    paramstr = ','.join(paramstr.split(',')[:-1])
    evalstr = 'proxy.'+methodname+'('+paramstr+')'
    print evalstr
    try:   
        ret = eval('proxy.'+methodname+'('+paramstr+')')
        print 'Remote return:'
        print '\t',ret
        return ret
    except:
        print 'Execute ',methodname,' error: '
        print sys.exc_type, sys.exc_value
        
        
#使用方法: analyzer.py info|exe url [methodname] [params]
#info 表示要获取该Web服务的所有方法的详细信息
#exe 表示执行方法
#url WSDL的地址,不是Web服务的地址
#methodname 在执行方法时指定要执行的方法名
#params 在执行方法时要传递的参数字符
if __name__ == '__main__':
    if len(sys.argv) < 3:
        print 'Usage: analyzer.py info|exe url [methodname] [params]'
        sys.exit()
    
    opt = sys.argv[1]
    url = sys.argv[2]
        
    #url = 'http://www.xmethods.net/sd/2001/TemperatureService.wsdl'
    print 'Get WSDL ...'
    try:
        analyzer = Analyzer(url)
    except:
        print 'Error: '
        print sys.exc_type, sys.exc_value
        sys.exit()
    
    if opt == 'info':
        methodsInfo(analyzer)
        sys.exit()

    if opt == 'exe':
        if len(sys.argv)<4:
            print 'Usage: analyzer.py exe url methodname [params]'
        methodname = sys.argv[3]
        params = sys.argv[4:]
        executeMethod(analyzer,methodname,params)
        sys.exit()
    
    print 'Usage: analyzer.py info|exe url [methodname] [params]'
    sys.exit()
分享到:
评论

相关推荐

    python项目练习-python3实现web服务器

    在本项目中,“python项目练习-python3实现web服务器”是一个基于Python 3的实践教程,旨在帮助学习者掌握如何利用Python构建一个简单的Web服务器。实验楼是一个在线学习平台,提供了这个项目的原始版本,而这里所述...

    python毕业设计之nweb渗透测试工具(django)源码.zip

    Python毕业设计中的“nweb渗透测试工具”是一个基于Django框架开发的应用,旨在提供网络安全性评估的功能。这个项目的核心目标是教会学生如何利用Python和Django来构建一个实用的网络安全工具,同时也展示了Web安全...

    测试python功能的web项目

    在这个项目中,Tomcat可能是用来运行Python编写的Web应用的一个环境,因为有些开发者可能会选择使用像Flask或Django这样的Python Web框架,并通过Wsgi(Web服务器网关接口)与Tomcat进行通信。这样,Python应用可以...

    基于Python-Django的多功能Web安全渗透测试工具设计源码+使用说明(优质项目).zip

    基于Python-Django的多功能Web安全渗透测试工具设计源码(优质项目).zip本项目是一款基于 Python-Django 的多功能 Web 应用渗透测试系统,包含漏洞检测、目录识别、端口扫描、指纹识别、域名探测、旁站探测、信息...

    毕业设计-基于python-web渗透测试工具(django)毕业设计与实现(源码+数据库+演示视频).zip

    目 录 摘 要 2 Abstract 3 第1章 绪论 5 1.1 研究背景与意义 5 1.2 国内外研究现状和发展趋势 5 1.3 本论文主要工作及...4.2渗透测试工具首页 13 4.3WEB漏洞测试 14 4.4端口扫描测试 15 结论 17 致谢 18 参考文献 18

    毕业设计:基于Python的web渗透测试工具(源码 + 数据库 + 说明文档)

    毕业设计:基于Python的web渗透测试工具(源码 + 数据库 + 说明文档) 第2章 web安全评估及测试的介绍 8 2.1 渗透测试 8 2.2 web安全评估 8 第3章 渗透测试及安全评估的设计 10 3.1 漏洞渗透测试方法设计 10 3.2 SQL...

    Python实现Web UI自动化测试实战-Chapter-13

    在本章中,我们将学习如何安装和配置Selenium WebDriver,以及如何创建第一个自动化测试脚本,比如打开一个网页、输入文本、点击按钮等基本操作。 2. **元素定位**: 在自动化测试中,我们需要找到网页上的特定元素...

    web自动化测试框架及实践,应用python+selenium+pytest集成了web页面的功能巡检、写测试报告以及邮件发送测

    本文将深入探讨如何使用Python结合Selenium和Pytest构建一个强大的Web自动化测试框架,实现功能巡检、生成测试报告以及通过邮件发送测试结果。 首先,Python是一种广泛应用于测试领域的编程语言,其简洁明了的语法...

    Python web接口开发与测试

    Python Web接口开发与测试是现代软件工程中的重要环节,它涉及到使用Python语言构建Web服务以及对这些服务进行验证和质量保证。在这个过程中,开发者需要掌握一系列技术和工具,以确保接口功能完善、性能良好且易于...

    webUI自动化测试框架(Python+selenium)

    本文将深入探讨如何使用Python结合Selenium库构建一个WebUI自动化测试框架。首先,我们要了解Selenium的核心功能:模拟用户在浏览器上的操作,如点击、输入、导航等。 Selenium是一个开源的Web自动化测试工具,它...

    Python-流行的pythonWeb开发框架的基准测试

    本篇文章将深入探讨在Python中广泛使用的Web开发框架,并进行基准测试,以了解它们在性能、易用性和可扩展性等方面的表现。 一、Django Django被誉为“由开发者为开发者设计”的框架,它强调DRY(Don't Repeat ...

    python web接口开发与测试

    在这个主题中,我们将深入探讨Python在构建和测试Web接口方面的能力,以及如何利用其丰富的库和框架来实现高效的工作流程。 1. Python基础:Python是一种高级编程语言,以其简洁的语法和强大的功能而受到广大开发者...

    Python自动化测试教程 完整版PDF

    Selenium 是 Thought Works 公司开収的一套基于 web 应用的自劢化测试工具,直接运行在浏览器中,模拟用户操作。它可以被用于单元测试、集成测试、回弻测试、系统测试、冒烟测试、验收测试,并且可以运行在各种...

    Web服务器压力测试工具

    Imperva的首席安全工程师Barry Shteiman近期发布一个基于python的web服务器拒绝服务(dos)工具,称为: HULK (Http Unbearable Load King) 。测试下来一台4G内存的服务器,不到一分钟就瘫了。

    python自动化测试-web-selenium

    Python中的Selenium是一个强大的自动化测试工具,主要用于模拟真实用户与Web应用程序的交互。它能够控制浏览器执行各种操作,如点击按钮、填写表单、导航页面等,非常适合进行端到端的Web应用测试。本篇文章将深入...

    python 写的服务器

    例如,你可以使用`python -m http.server`命令来启动一个默认的8000端口的服务器,用于测试静态文件服务。 在更复杂的应用中,开发者可能会选择使用像Flask或Django这样的Web框架。Flask是一个轻量级的框架,适合...

    集成了一些利用python写的渗透测试工具,有web界面.zip

    集成了一些利用python写的渗透测试工具,有web界面项目名称工具网项目简介使用python-flask框架,搭配bootstrap前端框架实现一个小型web服务器项目定位网络安全工具软件功能提供网络探测和管理功能,并且提供数据...

    python编写的webserver的小例子

    这个小例子展示了如何利用 Python 的内置库来快速搭建一个简单的 Web 服务器,非常适合初学者入门。在这个教程中,我们将深入探讨如何创建、运行以及理解 Python Web 服务器的基本工作原理。 首先,`webserver.py` ...

Global site tag (gtag.js) - Google Analytics