- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我完全不熟悉使用 Python WebTest 进行功能测试,请多多包涵
我在看 https://webtest.readthedocs.org/en/latest/webtest.html , 所以我尝试了建议的代码来发出请求:
app.get('/path', [params], [headers], [extra_environ], ...)
好的,对我来说看起来很简单。我在 myapp 文件夹中创建了一个名为 test_demo.py 的文件:
from webtest import TestApp
class MyTests():
def test_admin_login(self):
resp = self.TestApp.get('/admin')
print (resp.request)
现在这就是我遇到的问题,我应该如何运行这个 test_demo.py?我试过输入 bash
$ bin/python MyCart/mycart/test_demo.py test_admin_login
但它没有显示任何结果。
我敢打赌我一定是出了什么问题,但是文档帮不上什么忙,或者我的速度太慢了。
最佳答案
糟糕,您错过了一些步骤。
您的程序没有做任何事情,因为您没有告诉它做任何事情,您只是定义了一个类。所以让我们告诉它做点什么。我们将使用 unittest包使事情更加自动化。
import unittest
from webtest import TestApp
class MyTests(unittest.TestCase):
def test_admin_login(self):
resp = self.TestApp.get('/admin')
print (resp.request)
if __name__ == '__main__':
unittest.main()
运行它,我们看到:
E
======================================================================
ERROR: test_admin_login (__main__.MyTests)
----------------------------------------------------------------------
Traceback (most recent call last):
File "test_foo.py", line 6, in test_admin_login
resp = self.TestApp.get('/admin')
AttributeError: 'MyTests' object has no attribute 'TestApp'
----------------------------------------------------------------------
Ran 1 test in 0.000s
FAILED (errors=1)
好的,所以我们需要一个应用程序来测试。去哪里买?您通常需要通过 config.make_wsgi_app()
在 main
中创建的 WSGI 应用程序。最简单的方法是加载它,就像 pserve development.ini
在您运行应用程序时所做的那样。我们可以通过 pyramid.paster.get_app()
来做到这一点。
import unittest
from pyramid.paster import get_app
from webtest import TestApp
class MyTests(unittest.TestCase):
def test_admin_login(self):
app = get_app('testing.ini')
test_app = TestApp(app)
resp = test_app.get('/admin')
self.assertEqual(resp.status_code, 200)
if __name__ == '__main__':
unittest.main()
现在所需要的只是一个与您的 development.ini
类似的 INI 文件,但用于测试目的。您可以只复制 development.ini
,直到您需要设置任何仅用于测试的设置。
希望这能给您一个起点,让您了解更多关于 unittest
包的信息。
关于python - 使用 Python WebTest 进行功能测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15250276/
我正在使用 VS2017 - 有没有什么方法可以在不安装 VS2017 Enterprise 的情况下让网络测试工作?我只需要 mstest.exe - 而不是 GUI 或 IDE。 最佳答案 不,对
当我尝试使用 webtest 在我的开发服务器上运行 gaeunit 时,出现此错误。 No module named webtest Status: 404 Not Found Conten
我正在使用webtest插件作为grails的功能测试组件。 它可以正常工作,但是非常慢-在测试中,整个应用程序的响应时间很短(每页大于1分钟)。我的感觉是,这是因为当我通过IDE(test-app
在django-webtest ,每个测试 TestCase 子类都带有 self.app,它是 webtest.TestApp 的一个实例,然后我可以通过 self.app.get('/',user
我正在使用 WebTest 测试表单。但是,有些字段是使用 JS 动态创建的,因此这些字段不在 Form 中。当我尝试设置以下字段之一时出现错误: >>> resp.form['new_field']
我有一个 Google App Engine 应用程序,我的请求 hadler 有一个执行身份验证的装饰器。通过 WebTest 我发现 yesterday如何设置登录用户和管理员。 今天我的身份验证
我正在使用 Microsoft WebTest 并希望能够执行类似于 NUnit 的 Assert.Fail() 的操作。我想出的最好办法是 throw new webTestException()
我正在使用 Python 和 Webtest 来测试一个 WSGI 应用程序。我发现处理程序代码中引发的异常往往会被 Webtest 吞噬,然后引发泛型: AppError: Bad response
如果我发送请求,并且我希望响应通过 SignalR 来,是否可以在 Visual Studio 中使用 LoadTest 或 PerformanceTest 进行测试? 最佳答案 简短回答:是的 我已
Azure 上的 Application Insights 允许我上传 .webtest 文件来监控应用程序可用性。我的应用程序是 REST/JSON 服务,因此我的 .webtest 引用从 Ext
我已在此站点中阅读了 Grails 和 Webtest 的文档: http://www.grails.org/plugin/webtest 而且它非常未更新。那里列出的大多数脚本都不起作用。 我正在寻
我无法在Grails 2.3.11上运行webtests。运行grails test-app我得到这个: Error Fatal error running tests: couldn't find
** 更新后 ** 对于 Microsoft Dynamics 环境中的系统和集成测试,我们使用 Visual Studio 2010 Coded UI。我是一个没有经验的 Visual Studio
我为一个看起来运行良好的网站创建了一个网络性能测试。这是一个用于登录和测试导航的简单测试。运行该测试每次都有效。但是当我在 LoadTest 中调用该测试时,问题就出现了。因此,我创建了一个负载测试,
我完全不熟悉使用 Python WebTest 进行功能测试,请多多包涵 我在看 https://webtest.readthedocs.org/en/latest/webtest.html , 所以
我配置了我的 pyramid 应用程序,以便在根据 official tutorial 进行身份验证后将 user 对象附加到 request .到目前为止一切顺利......但是虽然它工作得很好并且
我有一个 .webtest,我打算用它来加载测试将文件上传到网站。我正在使用 Visual Studio 中内置的 WebTest 框架,目的是从 Azure 运行更大规模的测试。 我创建了一个新的网
有谁知道我如何使用 WebTest 测试图像上传。我目前的代码是: form['avatar'] =('avatar', os.path.join(settings.PROJECT_PATH, 'st
我有一个 Azure 资源管理器模板,它是一组嵌套模板的一部分。它创建一个 App Insights 组件、针对禁止请求的网站的警报规则、多步骤 Web 测试以及针对 Web 测试的警报规则。除针对
我有一个 Pyramid 应用程序,它将某些功能锁定为 HTTPS 连接。 服务器前面是 nginx(通常),我使用 PasteDeploy 来检测 HTTPS 连接。从我的环境.ini: [filt
我是一名优秀的程序员,十分优秀!