CherryPy教程

CherryPy 测试

测试是一个过程,在此过程中,应用程序从不同的角度进行,以便-
查找问题列表 找出预期和实际结果、输出、状态等之间的差异。 了解实施阶段。 找到对实际目的有用的应用程序。
测试的目标不是让开发人员犯错,而是提供工具并提高质量,以估计给定时间应用程序的健康状况。
需要提前计划测试。这需要定义测试的目的、了解测试用例的范围、列出业务需求并了解项目不同阶段所涉及的风险。
测试被定义​​为要在系统或应用程序上验证的一系列方面。以下是 常用测试方法的列表-
单元测试-这通常由开发人员自己进行。这旨在检查代码单元是否按预期工作。 可用性测试-开发人员通常会忘记他们正在为不了解系统的最终用户编写应用程序。可用性测试可验证产品的优缺点。 功能/验收测试-虽然可用性测试检​​查应用程序或系统是否可用,但功能测试可确保实现每个指定的功能。 负载和性能测试-执行此操作是为了了解系统是否可以适应要进行的负载和性能测试。这可能会导致硬件更改、优化 SQL 查询等。 回归测试-它验证产品的连续发布不会破坏之前的任何功能。 可靠性和弹性测试-可靠性测试有助于验证系统应用程序分解一个或多个组件。

单元测试

Photoblog 应用程序不断使用单元测试来检查以下内容-
新功能按预期正常运行。 新代码发布不会破坏现有功能。 缺陷已修复并保持不变。
Python 带有一个标准的单元测试模块,提供了一种不同的单元测试方法。

单元测试

unittest 植根于 JUnit,这是一个由 Kent Beck 和 Erich Gamma 开发的 Java 单元测试包。单元测试只是返回定义的数据。可以定义模拟对象。这些对象允许针对我们设计的接口进行测试,而不必依赖整个应用程序。它们还提供了一种在隔离模式下运行包含其他测试的测试的方法。
让我们用以下方式定义一个虚拟类-
import unittest
class DummyTest(unittest.TestCase):
def test_01_forward(self):
dummy = Dummy(right_boundary=3)
   self.assertEqual(dummy.forward(), 1)
   self.assertEqual(dummy.forward(), 2)
   self.assertEqual(dummy.forward(), 3)
   self.assertRaises(ValueError, dummy.forward)
def test_02_backward(self):
dummy = Dummy(left_boundary=-3, allow_negative=True)
   self.assertEqual(dummy.backward(),-1)
   self.assertEqual(dummy.backward(),-2)
   self.assertEqual(dummy.backward(),-3)
   self.assertRaises(ValueError, dummy.backward)
def test_03_boundaries(self):
dummy = Dummy(right_boundary=3, left_boundary=-3,allow_negative=True)
   self.assertEqual(dummy.backward(),-1)
   self.assertEqual(dummy.backward(),-2)
   self.assertEqual(dummy.forward(),-1)
   self.assertEqual(dummy.backward(),-2)
   self.assertEqual(dummy.backward(),-3)
代码解释如下-
应导入 unittest 模块以提供给定类的单元测试功能。 应该通过子类化 unittest 创建一个类。 上面代码中的每个方法都以一个单词 test 开头。所有这些方法都由 unittest 处理程序调用。 测试用例调用 assert/fail 方法来管理异常。
将此视为运行测试用例的示例-
if __name__ == '__main__':
unittest.main()
运行测试用例的结果(输出)如下-
----------------------------------------------------------------------
Ran 3 tests in 0.000s
OK

功能测试

一旦应用程序功能开始按照要求形成,一组功能测试可以验证应用程序在规范方面的正确性。但是,为了获得更好的性能,测试应该自动化,这需要使用第三方产品,例如 Selenium。
CherryPy 提供了类似内置函数的辅助类来简化功能测试的编写。

负载测试

根据您正在编写的应用程序和您对容量的期望,您可能需要运行负载和性能测试,以检测应用程序中阻止其达到特定性能水平的潜在瓶颈。
本节不会详细说明如何进行性能或负载测试,因为它不在 FunkLoad 包中。
FunkLoad 的基本示例如下-
from funkload.FunkLoadTestcase 
import FunkLoadTestCase
class LoadHomePage(FunkLoadTestCase):
def test_homepage(self):
server_url = self.conf_get('main', 'url')
nb_time = self.conf_getInt('test_homepage', 'nb_time')
home_page = "%s/" % server_url
for i in range(nb_time):
self.logd('try %i' % i)
self.get(home_page, description='Get gome page')
if __name__ in ('main', '__main__'):
import unittest
unittest.main()
这里是上面代码的详细解释-
测试用例必须从 FunkLoadTestCase 类继承,以便 FunkLoad 可以执行其内部工作来跟踪测试期间发生的情况。 类名很重要,因为 FunkLoad 会根据类名查找文件。 设计的测试用例可以直接访问配置文件。只需对服务器调用 Get() 和 post() 方法即可获取响应。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4