• AceTest HTTP请求处理工具


    AceFantasyVI - AceTest HTTP请求处理工具

    AceTest HTTP请求处理工具

    1. 关于
    2. 安装运行
    3. 缘起
    4. 新建/编辑实例
    5. 验证
    6. 运行实例
    7. 其它工具栏
    8. 参数池
    9. 导出接口描述文档
    • 2012-03-14 17:37
    • 邹业盛 / yeshengzou # # gmail.com

    1 关于

    AceTest 是我近期做的小工具,其实比较早之前就做好了一版,自己用了一段时间。然后,根据自己的使用感觉,好好重构了一番,现在把它放到 Github 上了:

    https://github.com/AceFantasy/AceTest

    如果要一句话来说明 AceTest 是做什么的,那么就是“模拟 HTTP 请求”——好吧,虽然我自己也不喜欢这种叫法,但是,它做的事也确实是这个。

    AceTest 是一个 Web 应用工具,你可以在页面上方便地定义一个 HTTP 请求(地址,参数,头什么的),然后将这个请求发出,当然,这个请求不是直接发到你指定的地址,而是发到服务器端,服务器端通过一个 HTTPClient 再把请求发到指定的地址,获取响应后,把响应返回给你。之后,你可以定义一些函数对响应的结果进行检查,以此,可以达到测试的目的。

    同时,因为你已经定义好了 HTTP 请求,所以, AceTest 可以依此,来自动生成描述 HTTP 接口的文档。

    2 安装运行

    AceTest 的后端使用的是 Tornado ,前端的 js 部分使用的是 Dojo 。同时,使用了 Django 的 ORM 部分来进行对数据库的访问(不好意思,我懒:) )。

    所以,此项目要跑起来,需要:

    1. 安装 Tornado ,版本是 2.0 ,或者直接把 Tornado 文件夹放到 AceTest 目录下。
    2. 安装 Django ,版本是 1.2 。

    然后就可以像普通的 Tornado 项目一样启动了:

    $ python server.py

    启动时现在支持了两个可选的参数:

    • port 指定端口
    • db 指定数据库文件

    所以,可以这样:

    $ python server.py --port=80 --db=/home/zys/acetest.sqlite3

    3 缘起

    想到做 AceTest ,和平时的工作有关。因为维护着 Web 项目,而常常项目需要和外部服务交互,时不时出现问题需要快速确认外部服务的响应内容。很显然,要看到响应内容,不是把一个 URL 复制到浏览器就可以解决问题了的,方法啊,参数啊之类的东西都要正确才行,而有时,它们还很复杂。

    之前我一直是自己会写一个 Python 文件放在那里,有什么问题直接修改 Python 文件然后跑一下。当然,这本来没有什么大问题,只是每次新写的时候会觉得好折腾,我并不是把 httplib 这个模块的用法记得很熟。

    另外就是,自己写东西时,喜欢一种前后端完全分割的方式,先专注写后端逻辑,直接返回 json 格式的数据,然后已经完成的功能,希望可以使用规范的文档来描述 HTTP 接口,倒不是说需要给别人看,以后自己维护时也方便。不过每次写这些文档,都觉得是很费劲的事。

    我的第一份是工作是做桌面软件的自动化测试相关的内容,那时做了一个类似的东西。现在回想起来,形式是可以参照的,但是 HTTP 请求处理起来就简单很多了。使用 Tornado 自己的 HTTPClient 配合异步回调机制,很容易实现一个代理访问的模型。

    于是就这样开始了。定义一个 HTTP 请求,然后让后端的 Tornado 执行它,把结果返回给我。最初的构想就是这样。

    对于响应,直接使用 js 进行简单的判断,来提示是不是我期望的结果,这样,就达到的测试的目的。

    再后来,对于已经定义好的 HTTP 请求,格式化一下,就是一份清晰描述的接口文档。

    其实整个项目要做的事实现起来很简单,至少后端是这样的。很大部分的精力都是花在前端写 js 交互部分了。

    最初的想法是这样的。

    第一版时的样子,比现在要简陋多了。不过,基本的功能算是都实现了的。

    4 新建/编辑实例

  • 相关阅读:
    阿里云RDS的mysql数据库连接
    DRF框架400错误信息处理(视图集)
    关于百度Tongji Api的文档补充
    Python几种创建list的方法的效率对比
    手把手教你使用python复杂一点点的装饰器
    Python爬虫常用模块,BeautifulSoup笔记
    LSSS 构造过程
    微信网站应用扫码登陆
    分享一个自用的 Inno Setup 软件打包脚本
    彻底解决:请求被中止: 未能创建 SSL/TLS 安全通道
  • 原文地址:https://www.cnblogs.com/lexus/p/2455928.html
Copyright © 2020-2023  润新知