写点什么

软件测试 | Django 客户端测试

  • 2023-05-16
    北京
  • 本文字数:824 字

    阅读完需:约 3 分钟

在 Django 中,django.test.Client 类充当一个虚拟的网络浏览器,可以测试视图(views)与 Django 的应用程序以编程方式交互。

django.test.Client 类可以做的事情如下:

模拟“GET”和“POST”请求,观察响应结果,从 HTTP(headers、status code)到页面内容。

检查重定向链(如果有的话),再每一步检查 URL 和 status code.

用一个包括特定值的模版 context 来测试一个 request 被 Django 模版渲染。

进入 Django Shell 模式

Python 3.5.2(v3.5.2:4def2a2901a5,Jun 25 2016,22:18:55)[MSC V.1900 64 bit (AMD64)] on win32Type "help" ,"copyright","credits" or "license" for more information.(InteractiveConsole)>>> from django.test.utils import setup_test_environment>>> setup_test_enviroment()
复制代码

setup_test_environment()用于测试初始化测试环境。

>>> from django.test import Client>>> c = Client()>>> response = c.get('/index')>>> response.status_code200
复制代码

测试 index 视图。Client 类提供了 get()和 post()方法模拟 GET/POST 请求。通过 get()请求“/index/”路径,即为登录页面,打印 HTTP 返回的状态码为 200,表示请求成功。

测试首页

打开.../sign/test.py 文件,编写 index 视图的测试用例。

from django.test import TestCase
class IndexPageTest(TestCase) ```测试index登录首页```
def test_index_page_renders_index_template(self): ```测试index视图``` response = self.client.get('/index/') self.assertEqual(response.status_code,200) self.assertTemplateUsed(response,'index.html')
复制代码

虽然这里没有导入 django.test.Client 类,但 self.client 最终调用的依然是 django.test.Client 类的问题,通过 client.get()方法请求“/index/”路径。status_code 获取 HTTP 返回的状态码,使用 assertEqual()断言状态码是否为 200。assertTemplateUsed()断言服务器是否用给定的是 index.html 模版响应。

搜索微信公众号:TestingStudio 霍格沃兹的干货都很硬核

用户头像

社区:ceshiren.com 微信:ceshiren2023 2022-08-29 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料、实事更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬

评论

发布
暂无评论
软件测试 | Django客户端测试_测试_测吧(北京)科技有限公司_InfoQ写作社区