`

Tornado 自带Testing单元测试模块

阅读更多
# -*- coding: utf-8 -*-
# _test1_.py
import urllib

import time
import tornado
import base64
from tornado.httpclient import AsyncHTTPClient
from tornado.testing import AsyncTestCase
import pbiisi.msg_ws_pb2 as msgif

user_id = '6ebc445e348b11e7a7ab484d7ea41f89'

def init_head(msg):
    msg.head.unique = 'asdfhaskdfkaf'
    msg.head.ver = 160328
    msg.head.if_dt = int(time.time())
    return msg

#AsyncTestCase 可以看做是对 IOLoop 的一个封装,并以 TestCase 的形式提供使用接口。
class Testfunc1(AsyncTestCase):
    #这步如果不写,会报错传入参数没有ioloop,会导致无法进入runTest里面
    def get_new_ioloop(self):
        return tornado.ioloop.IOLoop.instance()

    
    #在调用的时候会通过testing里面的runTest运行,如果不写此方法,会报错:
    #【ValueError: no such test method in <class 'mytestcase.MyTestCase'>: runTest】
    @tornado.testing.gen_test
    def runTest(self):
        #global user_id
        # print '=======userlogin======'
        # rqmsg = init_head(msgif.rqUserLogin())
        # rqmsg.user = 'wangwu'
        # rqmsg.pwd = '123333'
        # data = {'uuid': user_id, 'pb2': base64.b64encode(rqmsg.SerializeToString())}
        # client = AsyncHTTPClient(self.io_loop)
        # response = yield client.fetch("http://192.168.51.40:10009/userlog/userlogin",method='POST',body=urllib.urlencode(data))
        # msg = msgif.UserLogin()
        # msg.ParseFromString(base64.b64decode(response.body))
        # user_id = msg.uuid
        # print msg

        print '=======areainfo======'
        rqmsg = init_head(msgif.rqAreaInfo())
        rqmsg.area_id.extend([1])
        rqmsg.get_child=0
        data = { 'pb2': base64.b64encode(rqmsg.SerializeToString())}
        client = AsyncHTTPClient(self.io_loop)

        response = yield client.fetch("http://192.168.51.40:10009/area/areainfo",method='POST',body=urllib.urlencode(data))
        msg = msgif.CommAns()
        msg.ParseFromString(base64.b64decode(response.body))
        print msg




运行方式:python -m tornado.test.runtests   _test1_

运行之后结果显示为:

 

 

 

 

 

分享到:
评论

相关推荐

    tornado 4.0.1 python framework guide

    `tornado.testing` 模块提供了一套测试工具,使得开发者可以更加方便地编写针对异步代码的单元测试,提高了测试的准确性和覆盖率。 **5.9 tornado.util — 通用工具** `tornado.util` 模块提供了一些通用的工具...

    tornado官方翻译文档

    16. 异步代码单元测试:tornado.testing模块提供了进行异步代码单元测试的工具。 Tornado的安装方式非常简单,可以通过pip或easy_install命令直接从PyPI安装。但是,官方文档也提示,如果从PyPI或easy_install安装...

    Tornado_Power BI视觉模块插件.pbix

    Tornado_Power BI视觉模块插件.pbix

    tornado-1.2.0源码

    Tornado自带了简单的模板引擎`template`模块,用于动态生成HTML页面。同时,`staticfile`模块负责处理静态文件请求,简化了Web应用的部署。 5. **Web应用框架Tornado Application** Tornado的`web`模块定义了`...

    Tornado项目实战

    - **测试工具**:Tornado提供`tornado.testing`模块,方便编写单元测试。 通过学习和实践Tornado项目,可以深入理解异步Web开发,提升在高并发场景下的性能优化能力。参考教程将提供详细的步骤和示例,帮助你一...

    Tornado使用指南(中文版)

    此外,Tornado还提供了`tornado.process`和`tornado.autoreload`等模块,支持多进程和自动重载代码,方便开发和调试。 ### 7. 安全性 Tornado提供了基本的安全特性,如CSRF(跨站请求伪造)防护和XSS(跨站脚本)...

    python基于Tornado实现,系统核心调度,可分布式扩展

    例如,可以使用`tornado.log`模块进行日志管理,`tornado.web.RequestHandler`的`set_default_headers`方法来设置安全相关的HTTP头。 总结起来,Python基于Tornado实现的系统核心调度,结合其异步特性和分布式扩展...

    tornado_documentation_release3.2.2.pdf

    Tornado是一个由...tornado.autoreload模块能够在开发过程中自动检测代码更改。tornado.concurrent模块用于与线程和未来对象的工作。tornado.httputil模块用于操纵HTTP头和URL。tornado.log模块提供了日志支持。

    tornado源代码

    - **test**: 测试目录,包含了对 Tornado 各个组件的单元测试,用于确保代码的正确性和稳定性。 - **examples**: 示例代码,展示了如何使用 Tornado 实现各种功能,如简单的 HTTP 服务器、WebSocket 应用等。 - **...

    Tornado User Guide

    此外,还有单元测试和集成测试的策略。 总的来说,《Tornado 2.0 用户指南》是深入学习Tornado框架的宝贵资源,无论你是初学者还是有经验的开发者,都能从中受益。通过阅读和实践指南中的例子,你将能够构建出高效...

    tornado docs.pdf

    示例中没有使用Tornado的异步特性,但通过一个简单的“Hello, world”页面,演示了如何使用Tornado的IOLoop和Web模块来创建Web应用程序。开发者可以将此示例作为入门Tornado Web开发的起点。 文档还提到,与其他...

    tornado2.2 for win7

    总结,Tornado 2.2在Win7系统下的应用不仅为开发者提供了便捷的开发环境,还通过其丰富的功能模块和强大的VxWorks支持,确保了嵌入式项目的高效实施。了解并掌握这些知识点,将有助于提升开发效率和产品质量,为Win7...

    tornado blog

    7. **部署与测试**:项目可能还包括了测试脚本和部署配置,例如使用Docker进行容器化部署,或者使用unittest进行单元测试。 通过学习和研究 Tornado Blog 项目,我们可以掌握Tornado框架的基本用法,了解如何构建一...

    tornado 简单项目结构

    10. **测试**:为了确保代码质量,Tornado 项目通常会包含一个 `tests` 目录,用于存放单元测试和集成测试。可以使用 Python 的标准 `unittest` 模块或第三方库如 `pytest` 进行测试。 总的来说,这个简单的 ...

    tornado框架demo

    - **测试**: 使用unittest或pytest等Python测试框架,编写单元测试和集成测试,确保代码质量。 总结,"tornado框架demo"项目展示了如何在企业环境中利用Tornado构建Web应用,包括异步数据库操作、用户认证系统以及...

    tornado新版

    4. **模板引擎**:Tornado自带了一个简单的模板语言,用于生成HTML页面。它支持变量插值、控制结构以及包括继承在内的高级特性,有助于将视图与逻辑分离。 5. **WebSocket支持**:Tornado对WebSocket协议有原生支持...

    tornado 安装包

    3. **WebSockets支持**: Tornado 自带了对WebSockets协议的支持,使得实时双向通信成为可能,非常适合实时应用,如聊天室、实时数据流和游戏等。 4. **HTTP客户端**: Tornado 包含了一个HTTP客户端库,可以方便地...

    install_tornado2_2.rar_tornado_tornado2.2_tornado安装_vxworks_vxwo

    5. **Request Handling**:通过使用 `tornado.web` 模块中的 RequestHandler 类,可以轻松定义路由和处理HTTP请求。 6. **Authentication and Session Management**:Tornado 提供基础的身份验证和会话管理功能,...

    tornado实战之一

    这通常从创建一个`main.py`文件开始,然后导入Tornado模块并定义一个请求处理器。例如: ```python from tornado.web import Application, RequestHandler from tornado.ioloop import IOLoop class MainHandler...

Global site tag (gtag.js) - Google Analytics