# -*- 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.testing` 模块提供了一套测试工具,使得开发者可以更加方便地编写针对异步代码的单元测试,提高了测试的准确性和覆盖率。 **5.9 tornado.util — 通用工具** `tornado.util` 模块提供了一些通用的工具...
16. 异步代码单元测试:tornado.testing模块提供了进行异步代码单元测试的工具。 Tornado的安装方式非常简单,可以通过pip或easy_install命令直接从PyPI安装。但是,官方文档也提示,如果从PyPI或easy_install安装...
Tornado_Power BI视觉模块插件.pbix
Tornado自带了简单的模板引擎`template`模块,用于动态生成HTML页面。同时,`staticfile`模块负责处理静态文件请求,简化了Web应用的部署。 5. **Web应用框架Tornado Application** Tornado的`web`模块定义了`...
- **测试工具**:Tornado提供`tornado.testing`模块,方便编写单元测试。 通过学习和实践Tornado项目,可以深入理解异步Web开发,提升在高并发场景下的性能优化能力。参考教程将提供详细的步骤和示例,帮助你一...
此外,Tornado还提供了`tornado.process`和`tornado.autoreload`等模块,支持多进程和自动重载代码,方便开发和调试。 ### 7. 安全性 Tornado提供了基本的安全特性,如CSRF(跨站请求伪造)防护和XSS(跨站脚本)...
例如,可以使用`tornado.log`模块进行日志管理,`tornado.web.RequestHandler`的`set_default_headers`方法来设置安全相关的HTTP头。 总结起来,Python基于Tornado实现的系统核心调度,结合其异步特性和分布式扩展...
Tornado是一个由...tornado.autoreload模块能够在开发过程中自动检测代码更改。tornado.concurrent模块用于与线程和未来对象的工作。tornado.httputil模块用于操纵HTTP头和URL。tornado.log模块提供了日志支持。
- **test**: 测试目录,包含了对 Tornado 各个组件的单元测试,用于确保代码的正确性和稳定性。 - **examples**: 示例代码,展示了如何使用 Tornado 实现各种功能,如简单的 HTTP 服务器、WebSocket 应用等。 - **...
此外,还有单元测试和集成测试的策略。 总的来说,《Tornado 2.0 用户指南》是深入学习Tornado框架的宝贵资源,无论你是初学者还是有经验的开发者,都能从中受益。通过阅读和实践指南中的例子,你将能够构建出高效...
示例中没有使用Tornado的异步特性,但通过一个简单的“Hello, world”页面,演示了如何使用Tornado的IOLoop和Web模块来创建Web应用程序。开发者可以将此示例作为入门Tornado Web开发的起点。 文档还提到,与其他...
总结,Tornado 2.2在Win7系统下的应用不仅为开发者提供了便捷的开发环境,还通过其丰富的功能模块和强大的VxWorks支持,确保了嵌入式项目的高效实施。了解并掌握这些知识点,将有助于提升开发效率和产品质量,为Win7...
7. **部署与测试**:项目可能还包括了测试脚本和部署配置,例如使用Docker进行容器化部署,或者使用unittest进行单元测试。 通过学习和研究 Tornado Blog 项目,我们可以掌握Tornado框架的基本用法,了解如何构建一...
10. **测试**:为了确保代码质量,Tornado 项目通常会包含一个 `tests` 目录,用于存放单元测试和集成测试。可以使用 Python 的标准 `unittest` 模块或第三方库如 `pytest` 进行测试。 总的来说,这个简单的 ...
- **测试**: 使用unittest或pytest等Python测试框架,编写单元测试和集成测试,确保代码质量。 总结,"tornado框架demo"项目展示了如何在企业环境中利用Tornado构建Web应用,包括异步数据库操作、用户认证系统以及...
4. **模板引擎**:Tornado自带了一个简单的模板语言,用于生成HTML页面。它支持变量插值、控制结构以及包括继承在内的高级特性,有助于将视图与逻辑分离。 5. **WebSocket支持**:Tornado对WebSocket协议有原生支持...
3. **WebSockets支持**: Tornado 自带了对WebSockets协议的支持,使得实时双向通信成为可能,非常适合实时应用,如聊天室、实时数据流和游戏等。 4. **HTTP客户端**: Tornado 包含了一个HTTP客户端库,可以方便地...
5. **Request Handling**:通过使用 `tornado.web` 模块中的 RequestHandler 类,可以轻松定义路由和处理HTTP请求。 6. **Authentication and Session Management**:Tornado 提供基础的身份验证和会话管理功能,...
这通常从创建一个`main.py`文件开始,然后导入Tornado模块并定义一个请求处理器。例如: ```python from tornado.web import Application, RequestHandler from tornado.ioloop import IOLoop class MainHandler...