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

  • 公司全额承担个税怎么申报
  • 可税前扣除的费用有哪些
  • 附加税减免税额不能大于本期应纳税额怎么办
  • 一般纳税人什么情况可以开3%的发票
  • 垃圾袋发票类别是什么
  • 采购返利怎么生成发票
  • 社会团体所涉及的法律
  • 什么软件属于无线网卡
  • 计提固定资产折旧,车间使用的固定资产折旧1400
  • 递延收益为什么是非流动负债
  • 购买税控盘全额退税
  • 房地产企业土地增值税清算
  • 外购自用需要缴纳增值税吗
  • 出口企业收入分录
  • 关于预计负债应付退货款明细科目
  • 发票上折扣怎么记账
  • 经营成本计算公式财务管理
  • 购买办公用品未取得发票怎么办
  • 民间非营利组织会计制度最新版
  • 申报个税按计提工资还是实际发放
  • 土地使用税的免征政策
  • 公司需要给员工提供的帮助
  • 付出去的款项退回怎么做账
  • win11正式版发布
  • 应收账款重分类什么意思
  • 电子税务局变更办税人员怎么操作
  • PHP:curl_copy_handle()的用法_cURL函数
  • yolov5讲解
  • 增值税业务发生的时间
  • 只有进项税没有销项
  • 此战成硕,我成功上岸西南交通大学了~~~
  • python 虚拟环境
  • 坏账准备备案申请资料
  • 财务费用的具体内容
  • 代扣代缴个人社保账务处理
  • 商标注册费用可以退吗
  • 个体户营业额一般填多少
  • 防暑降温用品进口品牌
  • mysql 虚拟机
  • 哪些发票是成品发票
  • 金税四期怎么监控个人账号
  • 小规模申报表填写
  • 已抵扣未申报的税额如何转出
  • 公司在银行买的金条怎么入账
  • 车辆上牌的费用应付多少?
  • 零售商品收入
  • 离职员工还怎么交社保呢
  • 现金不够老板垫钱怎么办
  • 邮寄发票的快递费走什么科目
  • 三栏明细账本怎样填写
  • 营业外支出明细账应该采用的格式是
  • 消防公司会计分录
  • 银行扣的账户管理费属于什么科目
  • 苗木设计方案
  • 抵扣联和发票联的区别
  • 财务报表分析的目的
  • 原始凭证留存几年
  • window8更新
  • 安装windowsserver2008r2提示无法定位程序输入点
  • fedoral
  • wmiex.exe是什么程序
  • ubuntu安装chia
  • application error message 漏洞验证
  • .msc是什么文件
  • 常用的linux操作
  • win10关闭metro界面
  • win8如何升级系统
  • node_
  • android怎么保存项目
  • js控制鼠标位置
  • Node.js中的construct
  • js实现多继承
  • android listView二级目录选中效果
  • Base64、DES、MD5加密解密原理
  • unity大神
  • python怎么画子图
  • 准予扣除外购的应税消费品已纳消费税税款的是
  • 库尔勒市税务局领导简介
  • 纳税人信用信息
  • 税务总局电子申报软件怎么用
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设