位置: 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(反射怎么解释)

  • 小规模纳税人单张发票最大金额
  • 税收实体法和程序法分类
  • 甲乙公司与银行之间的往来如何记账
  • 个人所得税退的多好还是少好
  • 金税四期会计人员如何提升自己
  • 国际货运代理企业应当遵循哪些原则
  • 电汇汇票和电汇的异同点
  • 财务汽车折旧年限的最新规定2020
  • 员工出差的餐补计入什么科目
  • 利润表没有其他业务收入
  • 公司支付佣金给个人合法吗
  • 2021留美学生签证
  • 销售使用过的固定资产3%减按2%
  • 暂估入库已结转怎么处理
  • 房地产预交税金及附加要计提吗
  • 材料采购定期结算表
  • 从国内往国外寄东西要多久
  • 提供部分原料的英文
  • 没有订立合同的著作权属于什么人
  • 奖金分为两次发放合法吗
  • 运费允许抵扣的税额分录
  • 发出商品如何做分录
  • 收到承兑后背书怎么处理
  • 发票在验旧日期之后作废吗
  • 小微企业文化事业建设费是否可以享受减免
  • 以前年度暂估
  • 营改增项目
  • 教你从脸上看出风水
  • 如何冲减其他应付款又不影响银行存款
  • bios读取不出u盘
  • php怎么自学
  • php注释的主要作用是什么?
  • 图像分割最新算法
  • php redis常用命令
  • php获取随机数
  • 处置固定资产涉税
  • 2022年最新公务员职务职级对照表
  • 3d沙盒游戏推荐
  • 出口退税转内销的话如何算发票金额
  • 冲以前年度成本分录
  • 虚开增值税发票不是也要缴税吗
  • 社保局申报工伤款多久能下
  • 己经认证的发票怎么作废
  • 预付账款和挂账的区别
  • 工会费的会计分录是什么
  • 销售收入和销售净收入的区别
  • 企业所得税汇算清缴时间
  • 个税专项附加扣除什么意思
  • 项目差旅费可以直接计入劳务成本吗
  • 交易性金融资产公允价值变动怎么算
  • 应收账款未收到是否要交税
  • 一般纳税人销售旧货
  • 公司租赁个人车辆租金多少合适
  • 应交增值税结转凭证
  • 捐赠货物的账务处理和纳税调整
  • 管理费用记错了跨年了怎么调整
  • 进项大于销项如何做分录
  • 酒店酒水成本核算表
  • 接受慈善捐款结尾怎么写
  • window10怎么window7
  • 戴尔笔记本电脑开不了机
  • 华硕主板如何刷系统
  • 做ghost备份
  • ias.exe是什么程序
  • xp系统的程序和功能在哪里
  • win7系统共享打印机设置方法
  • android图像处理
  • flask操作mysql数据库
  • unity3d 游戏开发 消息通信
  • opengl绘制一个矩形
  • linux shell 数组长度
  • 扇形的菜
  • javascript面向对象编程指南第三版
  • Android的事件处理机制是一种______机制
  • 原始凭证审核会计科目吗
  • 南京税务局 局长
  • 房屋契税2013年收费标准
  • 什么叫税务协查
  • 台湾大学会计硕士
  • 内江市税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设