首页 > 其他分享 >功能测试

功能测试

时间:2022-11-16 14:38:23浏览次数:47  
标签:body __ app 功能测试 json 404 self

微服务项目的功能测试是:通过发送的http请求并断言http响应,所有的测试与发布的api进行交互。

开发者主要关注两类最重要的功能测试:

  • 验证应用的行为和期望一致的测试
  • 确保异常行为已被修复且不再发生的测试

Flask中的FlaskClient类构建请求:

import unittest
import json
from flask_basic import app as tested_app

class TestApp(unittest.TestCase):
    def test_help(self):
        # creating a client to interact with the app
        app = tested_app.test_client()

        # calling /api/ endpoint
        hello = app.get('/api')

        # asserting the body
        body = json.loads(str(hello.data, 'utf8'))
        self.assertEqual(body['Hello'], 'World!')

if __name__ == '__main__':
    unittest.main()

FlaskClient类对每个http动词都有一个方法,方法会返回响应对象,然后这些对象可以被测试用来对结果进行验证。再上例中,我妈使用的是.get()方法获得响应对象。

在Flask类中有一个testing标志,可用它将异常传递到测试中,但有时倾向于不按照默认方式从应用得到返回值。比如为让api保持一致,要确保把返回体中的5xx和4xx错误的转换成json格式。

下面的例子:调用/api/会产生一个异类,通过结构化的json返回体,测试要确保客户端在test_raise()中获取正确的500信息。

test_proper_404()测试方法对一个不存在的路径进行了相似的校验:

import unittest
import json
from flask_error import app as tested_app

_404 = ('The requested URL was not found on the server. ' 'If you entered the URL manually please check your ' 'spelling and try again.')

class TestApp(unittest.TestCase):
    def setUp(self):
        # creating a client to interact with the app
        self.app = tested_app.test_client()

    def test_raise(self):
        # this won't raise a Python exception but return a 500
        hello = self.app.get('/api')
        body = json.loads(str(hello.data, 'utf8'))
        self.assertEqual(body['code'], 500)

    def test_proper_404(self):
        # calling a non existing endpoint
        hello = self.app.get('/dwdwqqwdwqd')

        # yeah it's not there
        self.assertEqual(hello.status_code, 404)

        # but we still get a nice JSON body
        body = json.loads(str(hello.data, 'utf8'))
        self.assertEqual(body['code'], 404)
        self.assertEqual(body['message'], '404: Not Found')
        self.assertEqual(body['description'], _404)

if __name__ == '__main__':
    unittest.main()

 

标签:body,__,app,功能测试,json,404,self
From: https://www.cnblogs.com/qxh-beijing2016/p/16895792.html

相关文章

  • 非功能测试
    兼容性测试不同的操作系统、浏览器、分辨率下,软件的行为是否一致具体的兼容性测试由公司定义界面测试依据产品原型图或者UI设计图如果没有原型图,站在用户的角度来......
  • 上午还在办公室敲代码,下午就领取了n+1大礼包。现在功能测试的出路在哪里?
    昨天下午两点多好兄弟突然喊我下楼,第一反应是“这老6,抽烟就直说,还说个事,心里骂完以后我慢慢悠悠下楼了,见他在打电话我先默默点上一支,准备待他结束以后对其发起灵魂拷问。......
  • 功能测试的一些测试意识总结
    1.没有什么常理上不可能发生的bug2.时刻要记住测试的是程序,是代码逻辑,一切都有迹可循,而不是一个自然事物3.前期的用例编写尽可能细腻,覆盖度全面,并提前清除需求......
  • 软件测试,功能测试转测开容易吗?
    谢邀:一、从这个问题,我能读出一些信息如下:1、不知道您从事测试工作多久了,可以看出您特别羡慕测试开发工程师;2、您可能一直从事功能测试工作,工作模式或大环境下,被中了草......
  • sysbench--OLTP数据库性能测试与服务器基准功能测试工具
     sysbench是一个基于LuaJIT的可编写脚本的多线程基准测试工具。它最常用于数据库基准测试,但也可用于创建不涉及数据库服务器的任意复杂的工作负载。 sysbench的作用:sys......
  • RedisGraph多活设计方案功能测试
    该文档主要是针对RedisGraph多活设计方案的功能测试,来说明方案是可实施是可行的。该方案设计文档参见上一篇文章 ​​RedisGraph图形数据库多活设计方案​​功能测试准备条......
  • Python全功能测试框架pytest
    目录PyTest一、快速开始1、介绍2、安装3、第一个测试4、断言引发异常5、分组测试6、添加临时目录二、调用测试1、布局规则1.1规则1.2测试布局1.2.1测试代码分......
  • 功能测试技术--边界值分析法
    一、边界值分析法的概念边界值分析法就是对输入的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。......
  • 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计
    使用JaCoCo统计功能测试代码覆盖率?对于JaCoCo,有所了解但又不是很熟悉。"有所了解"指的是在CI实践中已经使用JaCoCo对单元测试代码覆盖率统计:当代码push到代码仓......
  • 全功能测试框架 - Carina
    Carina是一个基于Java的测试自动化框架,它将所有测试层结合在一起:移动应用程序(web、本机、混合)、web应用程序、REST服务和数据库。github:https://github.com/zebrunner/ca......