位置: IT常识 - 正文

Testing Applications with WebTest¶

编辑:rootadmin
Testing Applications with WebTest — WebTest 1.3.2 documentationTesting Applications with WebTest&#18 Testing Applications with WebTest¶ author:Ian Bicking <ianb@colorstudy.com>maintainer:Gael Pasgrimaud <gael@gawel.org>NewsLicensewebtest – Functional Testing of Web Applicationswebtest.sel – Functional Testing with Selenium

Contents

Testing Applications with WebTest

Status & LicenseInstallationWhat This DoesTestApp

Making Requests

Modifying the Environment & Simulating AuthenticationWhat Is Tested By DefaultThe Response ObjectForm SubmissionsParsing the BodyFramework HooksStatus & License¶

推荐整理分享Testing Applications with WebTest¶,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

WebTest is an extraction of paste.fixture.TestApp, rewriting portions to use WebOb. It is under active development as part of the Paste cloud of packages.

Feedback and discussion should take place on the Paste list, and bugs should go into the Bitbucket tracker.

This library is licensed under an MIT-style license.

WebTest is in a mercurial repository at http://bitbucket.org/ianb/webtest. You can check it out with:

$ hg clone https://bitbucket.org/ianb/webtest WebTestInstallation¶

You can use pip or easy_install to get the latest stable release:

$ pip install WebTest$ easy_install WebTest

Or if you want the development version:

$ pip install "http://bitbucket.org/ianb/webtest/get/tip.tar.gz#egg=WebTest"What This Does¶

WebTest helps you test your WSGI-based web applications. This can be any application that has a WSGI interface, including an application written in a framework that supports WSGI (which includes most actively developed Python web frameworks – almost anything that even nominally supports WSGI should be testable).

With this you can test your web applications without starting an HTTP server, and without poking into the web framework shortcutting pieces of your application that need to be tested. The tests WebTest runs are entirely equivalent to how a WSGI HTTP server would call an application. By testing the full stack of your application, the WebTest testing model is sometimes called a functional test, integration test, or acceptance test (though the latter two are not particularly good descriptions). This is in contrast to a unit test which tests a particular piece of functionality in your application. While complex programming tasks are often is suited to unit tests, template logic and simple web programming is often best done with functional tests; and regardless of the presence of unit tests, no testing strategy is complete without high-level tests to ensure the entire programming system works together.

WebTest helps you create tests by providing a convenient interface to run WSGI applications and verify the output.

TestApp¶Testing Applications with WebTest¶

The most important object in WebTest is TestApp, the wrapper for WSGI applications. To use it, you simply instantiate it with your WSGI application. (Note: if your WSGI application requires any configuration, you must set that up manually in your tests.)

>>> from webtest import TestApp>>> from webtest.debugapp import debug_app>>> app = TestApp(debug_app)>>> res = app.get('/form.html')>>> res.status'200 OK'>>> res.form<Form />Making Requests¶

To make a request, use:

app.get('/path', [headers], [extra_environ], ...)

This does a request for /path, with any extra headers or WSGI environment keys that you indicate. This returns a response object, based on webob.Response. It has some additional methods to make it easier to test.

If you want to do a POST request, use:

app.post('/path', {'vars': 'values'}, [headers], [extra_environ], [upload_files], ...)

Specifically the second argument is the body of the request. You can pass in a dictionary (or dictionary-like object), or a string body (dictionary objects are turned into HTML form submissions).

You can also pass in the keyword argument upload_files, which is a list of [(fieldname, filename, fild_content)]. File uploads use a different form submission data type to pass the structured data.

For other verbs you can use:

app.put(path, params, ...)app.delete(path, ...)

These do PUT and DELETE requests.

Modifying the Environment & Simulating Authentication¶

The best way to simulate authentication is if your application looks in environ['REMOTE_USER'] to see if someone is authenticated. Then you can simply set that value, like:

app.get('/secret', extra_environ=dict(REMOTE_USER='bob'))

If you want all your requests to have this key, do:

app = TestApp(my_app, extra_environ=dict(REMOTE_USER='bob'))What Is Tested By Default¶

A key concept behind WebTest is that there’s lots of things you shouldn’t have to check everytime you do a request. It is assumed that the response will either be a 2xx or 3xx response; if it isn’t an exception will be raised (you can override this for a request, of course). The WSGI application is tested for WSGI compliance with a slightly modified version of wsgiref.validate (modified to support arguments to InputWrapper.readline) automatically. Also it checks that nothing is printed to the environ['wsgi.errors'] error stream, which typically indicates a problem (one that would be non-fatal in a production situation, but if you are testing is something you should avoid).

To indicate another status is expected, use the keyword argument status=404 to (for example) check that it is a 404 status, or status="*" to allow any status.

If you expect errors to be printed, use expect_errors=True.

本文链接地址:https://www.jiuchutong.com/zhishi/310596.html 转载请保留说明!

上一篇:mysql事务对效率的影响(mysql事务性能)

下一篇:day43-反射02(反射怎么解释)

  • 高新企业认定合格后什么时候开始享受税收优惠?
  • 个人所得税减除费用5000是什么意思
  • 产值利税率是什么
  • 企业所得税计算公式
  • 本年利润总分类账图片
  • 一年内到期的非流动负债是经营性负债吗
  • 资产负债表怎么下载
  • 深圳增值税普通发票查询真伪
  • 公司购买手机如何入账
  • 税控盘减免税额转出会计分录
  • 发票开工程服务和工程款的区别
  • 物流商品采购价差如何做账
  • 资产损失税前扣除是什么意思
  • 增资款怎么做账
  • 外汇税收怎么缴纳增值税
  • 发票未到货已到怎么入账
  • 分摊材料成本差异率怎么算
  • 企业外购的房屋建筑物是否属于非房地产企业
  • 预交增值税附加税费减免吗
  • 高速公路通行费专用发票可以抵扣吗
  • 资产减值准备的账务处理
  • 非直接结算是什么意思
  • 金融合同违约金罚息
  • 购买材料未付款怎么做账
  • 撤回投资属于什么会计科目
  • 扣缴上月税费会计分录
  • 三证合一后未办理税务登记
  • 商家不给发票可以报警吗
  • 外汇的收入
  • 餐饮业收入的会计分录及摘要
  • 一般纳税人销售自己使用过的汽车
  • 招标场地费怎么收
  • 职工福利费会计科目走管理费用
  • 营改增之前没有增值税吗
  • 在建工程会计分录例题
  • 小企业会计准则适用于哪些企业
  • 没有发票的成本怎么算
  • 睡莲怎样养
  • Eclipse PHPEclipse 配置的具体步骤
  • 纳税人代扣代缴
  • 出现又离开
  • 处置长期股权投资产生的收益计入什么科目
  • 对公收费明细入账计入什么科目
  • 报表按季度报是什么意思
  • 纳税总额怎么算
  • 第四季度所得税跟汇算清缴是一样吗
  • SQL Server实现split函数分割字符串功能及用法示例
  • sql server 2008简介
  • 财政拨入的专项款专账怎么做
  • 广交会展务
  • 专项应付款的核算
  • 捐赠 赞助 区别
  • 会计事务所给的发票
  • 企业股东撤资如何清算
  • 通讯发票可以税后抵扣吗
  • 应付账款账户怎么结转
  • 小型企业介绍怎么写
  • 史上最简单的皮筋枪
  • 微软6月24号
  • windows软件授权服务报告无法激活计算机
  • rsyslog 8.11.0 (v8-stable) 发布
  • win8改win7怎么改
  • linux 设置文件系统
  • bios各项参数的意义
  • redhat磁盘挂载
  • windowsxp回收站实际是
  • linux cr3
  • windows7压缩文件图标
  • firefox document
  • 删除默认共享的文件夹
  • js编写一个标准的单例模式类
  • javascript面向对象 第三方类库
  • 基于JAVASCRIPT实现的可视化工具是
  • jquery的遍历方法
  • 河南12306区号
  • 不动产租赁和经营租赁发票的区别
  • 建筑企业税务清算流程图
  • 如何打印更正申请
  • 乌鲁木齐交通服务电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设