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

  • 如何办理车辆购置置换补贴手续
  • 公司把股权转让给个人
  • 所得税费用属于什么科目借贷方向
  • 小规模纳税人缴纳增值税怎么算
  • u8已记账怎么修改年初余额
  • 机票附加的保险有必要买吗
  • 油票发票在报销中怎么开
  • 收取境外技术服务费如何
  • 个体工商户报税一年几次
  • 工资表多扣个税怎么做账
  • 个人签租车协议有法律效力吗
  • 费用的增加会减值吗
  • 房地产开发企业的土地使用权计入哪里
  • 税收和税法是什么关系
  • 累计折旧贷方余额是负数表示什么
  • 投资公司收到的发票
  • 融资租赁资产如何入账
  • 总公司业务分公司开票是虚开吗
  • 税控机操作
  • 私对私转账是否缴纳个人所得税
  • 建筑企业预收的工程款会计分录
  • 企业捐赠扣除
  • 软件开发工资低
  • 银行存款二级科目怎么增加
  • 职工报销子女医药费
  • 当收到转账支票时,应该如何处理?
  • 所有者提取的借贷方向
  • 旅游服务费如何入账
  • 公司成立前的准备工作有哪些
  • 对账工作的主要内容为什么不包括账表核对
  • 购入办公楼按多少折算
  • PHP:mb_encode_numericentity()的用法_mbstring函数
  • win11安装更新时出现一些问题
  • 出售固定资产净收益影响营业利润吗
  • 建筑业挂靠经营行为有什么涉税风险?
  • 交完社保
  • 图像分割 unet
  • 解决的英文
  • 如何修改php网页内容
  • php生成压缩包
  • 安装elementUI
  • vue导航解析流程
  • 取得了水电费发票怎么做
  • 列入固定资产的金额标准
  • 织梦cms官网
  • 银行存款余额调节表保管期限
  • 为什么出台农产品质量安全法
  • short int、long、float、double使用问题说明
  • 应收票据及应收账款包括哪些科目
  • 服务业预收账款什么时候确认收入
  • 未收到货款发票是什么意思
  • 进项税额已经抵扣会计分录
  • 应交税费月底账务处理
  • 坏账收回来了怎么处理
  • 建筑施工企业劳务费怎么入成本
  • 咨询费开发票应该选哪一项?
  • 小规模增值税减免申报表怎么填
  • 对公账户没有用了一定要注销吗?
  • 用Autoconf检测MySQL软件包的教程
  • freebsd忘记root密码
  • freebsd做服务器
  • mac怎么连接校园网wifi
  • mac浏览器显示不全
  • linux中字符设备有哪些
  • 怎么处理人际关系
  • windows10地图用不了
  • win8文件夹打不开
  • 开发环境配置是干嘛
  • canvas画心形
  • js的事件绑定
  • Android 让EditText失去焦点避免自动弹出输入法
  • unity开发手游
  • 深入理解计算机系统 电子书
  • python数学题
  • 税务局三级主办是副科吗
  • 车位办房产证需交多少税
  • 西安税务稽查局举报中心
  • 国税干部任前谈心谈话
  • 免税关口
  • 城镇土地使用税优惠政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设