博客
关于我
【odoo14】第十八章、自动化测试
阅读量:463 次
发布时间:2019-03-06

本文共 2322 字,大约阅读时间需要 7 分钟。

当我们开发大型应用时,自动化测试能够显著提升应用的健壯性。Odoo作为一个开源框架,提供了多种自动化测试方案,帮助开发者确保应用的稳定性。以下是Odoo自动化测试的主要方案:

测试方案概述

Odoo提供了三种主要的测试方案:

  • Python测试用例:用于测试业务逻辑,确保Python层面的功能正常。
  • JavaScript Qunit测试用例:专门用于测试JavaScript实现,尤其是前端功能。
  • Tours测试:用于验证Python和JavaScript之间的交互,模拟用户操作流程。
  • 本章内容

    本章将详细指导如何配置和执行自动化测试,涵盖以下内容:

  • 添加Python测试用例
  • 运行Python测试用例
  • 为客户端测试配置Headless Chrome
  • 添加Qunit测试用例
  • 添加Tours测试
  • 调试测试用例
  • 生成失败测试的视频或截图
  • 为测试填充随机数据
  • 技术需求

    为了覆盖所有应用场景,我们创建了一个新的模型LibraryBook

    class LibraryBook(models.Model):    _name = 'library.book'    name = fields.Char('Title', required=True)    date_release = fields.Date('Release Date')    author_ids = fields.Many2many('res.partner',                                  string='Authors',                                  default=lambda: self.env.user.partner_ids)    state = fields.Selection([        ('draft', 'Not Available'),         ('available', 'Available'),         ('lost', 'Lost')    ], 'State', default="draft")    color = fields.Integer()    def make_available(self):        self.write({'state': 'available'})    def make_lost(self):        self.write({'state': 'lost'})

    对于JavaScript测试用例,我们将使用第十五章中的int_color小部件。如需了解代码仓库,可访问GitHub仓库

    添加Python测试用例

    Python测试用例用于验证业务逻辑的可靠性。为了确保对模型修改的测试覆盖性,我们将创建用于验证图书状态改变的业务逻辑测试。

    准备步骤

  • 创建测试文件tests/__init__.py
  • from . import test_book_state
    1. 添加测试文件tests/test_book_state.py
    2. from odoo.tests.common import TransactionCaseclass TestBookState(TransactionCase):    def setUp(self, *args, **kwargs):        super(TestBookState, self).setUp(*args, **kwargs)        self.test_book = self.env['library.book'].create({'name': 'Book 1'})    def test_button_available(self):        '''Make available button'''        self.test_book.make_available()        self.assertEqual(self.test_book.state, 'available', 'Book state should be changed to available')    def test_button_lost(self):        '''Make lost button'''        self.test_book.make_lost()        self.assertEqual(self.test_book.state, 'lost', 'Book state should be changed to lost')

      运行测试

      运行测试用例时,执行以下命令:

      ./odoo-bin -c server.conf -i my_library --test-enable

      原理

      Odoo将测试文件识别并运行。TransactionCase确保每个测试用例在独立的事务中执行,并在测试完成后自动回滚。@tagged('-at_install', 'post_install')装饰器用于控制测试时机。

      Headless Chrome配置

      为了支持JavaScript测试,Odoo使用Headless Chrome。安装步骤如下:

    3. 在支持Headless Chrome的操作系统上安装Chrome浏览器。
    4. 使用以下命令安装必要的库:
    5. pip3 install websocket-client

      Headless Chrome能够无图形化运行测试用例,适用于服务器环境。

    转载地址:http://ypkbz.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现AvlTree树算法(附完整源码)
    查看>>
    Objective-C实现backtracking Jump Game回溯跳跃游戏算法(附完整源码)
    查看>>
    Objective-C实现BACKTRACKING 方法查找集合的幂集算法(附完整源码)
    查看>>
    Objective-C实现bailey borwein plouffe算法(附完整源码)
    查看>>
    Objective-C实现balanced parentheses平衡括号表达式算法(附完整源码)
    查看>>
    Objective-C实现base64加密和base64解密算法(附完整源码)
    查看>>
    Objective-C实现base64加解密(附完整源码)
    查看>>
    Objective-C实现base64编码 (附完整源码)
    查看>>
    Objective-C实现base85 编码算法(附完整源码)
    查看>>
    Objective-C实现basic graphs基本图算法(附完整源码)
    查看>>
    Objective-C实现BCC校验计算(附完整源码)
    查看>>
    Objective-C实现bead sort珠排序算法(附完整源码)
    查看>>
    Objective-C实现BeadSort珠排序算法(附完整源码)
    查看>>
    Objective-C实现bellman ford贝尔曼福特算法(附完整源码)
    查看>>
    Objective-C实现bellman-ford贝尔曼-福特算法(附完整源码)
    查看>>
    Objective-C实现bellman-ford贝尔曼-福特算法(附完整源码)
    查看>>
    Objective-C实现bellmanFord贝尔曼-福特算法(附完整源码)
    查看>>
    Objective-C实现BellmanFord贝尔曼-福特算法(附完整源码)
    查看>>
    Objective-C实现bezier curve贝塞尔曲线算法(附完整源码)
    查看>>
    Objective-C实现bfs 最短路径算法(附完整源码)
    查看>>