Django Web 测试
Django 单元测试
模拟浏览器发起请求,测试 web 功能。只是简单记录一下怎么使用。
环境
Win10
Python2.7
Django 1.8.11
MySQL5.6
项目结构
大致如下
mysite
mysite
settings.py
urls.py
views.py
...
templates
...
测试
创建 mysite/mysite/tests.py
也可以放在 mysite/tests.py (项目目录下)
也可以放在 myapp/tests.py (应用目录下)
# -*- coding: utf-8 -*-
from django.test import Client, TestCase
class LittleTestCase(TestCase):
def setUp(self):
"""
测试前置任务,创建一个客户端,可以把它看做浏览器。
"""
self.click = Client()
def test_http_response_status(self):
"""
请求根目录,验证响应码
"""
response = self.client.get('/')
self.assertEqual(response.status_code, 200)
def test_http_response_content(self):
"""
请求 /get_json/,验证返回 JSON 数据。
"""
response = self.client.get('/get_json/')
self.assertEqual(response.content, '{"msg": "success"}')
def test_http_response_context(self):
"""
请求 /hello/,验证上下文,也就是渲染视图的数据
"""
data = {
"name": "jack"
}
response = self.client.get('/hello/', data)
self.assertEqual(response.context["name"], "jack123")
执行测试
Django 找到 test*.py 文件中的 TestCase 子类,进行测试
python manage.py test
如果 tests.py 放在自己创建的目录中,如 mysite/tests/tests.py,执行测试要指定目录
python manage.py test tests/
测试结果
执行了3个测试,全部成功
需要注意,Django 默认创建一个 test_ 开头的数据库执行测试,测试结束会自动销毁这个数据库。
Creating test database for alias 'default'...
...
----------------------------------------------------------------------
Ran 3 tests in 0.533s
OK
Destroying test database for alias 'default'...
项目代码
mysite/mysite/urls.py
# -*- coding: utf-8 -*-
from django.conf.urls import include, url
from django.contrib import admin
from django.views.generic import TemplateView
from mysite import views
urlpatterns = [
url(r'^$', views.index),
url(r'^get_json/$', views.get_json),
url(r'^hello/$', views.hello),
]
mysite/mysite/views.py
# -*- coding: utf-8 -*-
import json
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
return render(request, 'mysite/index.html')
def get_json(request):
result = {
"msg": "success",
}
return HttpResponse(json.dumps(result), content_type="application/json")
def hello(request):
name = request.GET.get('name')
data = {
"name": name + "123"
}
return render(request, 'mysite/hello.html', data)
Django Web 测试的更多相关文章
- 教程:Visual Studio 中的 Django Web 框架入门
教程:Visual Studio 中的 Django Web 框架入门 Django 是高级 Python 框架,用于快速.安全及可扩展的 Web 开发. 本教程将在 Visual Studio 提供 ...
- Web测试介绍2一 安全测试
安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程. 主要安全需求包括: (i) 认证 Authent ...
- Web测试的常用测试用例与知识
1. Web测试中关于登录的测试 2. 搜索功能测试用例设计 3. 翻页功能测试用例 4. 输入框的测试 5. Web测试的常用的检查点 6. 用户及权限管理功能常规测试方法 7. Web测试之兼容性 ...
- Web测试中常见分享问题
Web测试中,由于开发通常指注重完成H5页面的逻辑功能,对各种系统.浏览器等考虑不周,同时Android端各类机型碎片化,容易产生兼容性问题,这其中以分享类型为最. 本文简单分析总结一些测试 ...
- web测试常用的用例及知识
1. Web测试中关于登录的测试... 1 2. 搜索功能测试用例设计... 2 3. 翻页功能测试用例... 3 4. 输入框的测试... 5 5. ...
- web测试安全性常见问题
web测试安全性常见问题 一. 登录账号明文传输 1. 问题一:登录账号密码或者修改密码明文传输 现象:目前物流对内的java系统基本上都是 ...
- app测试与web测试的区别
1.从功能测试的来讲的话,在流程和功能测试上是没有区别的.系统测试和一些细节可能会不一样. 那么我们就要先来了解,web和app的区别. web项目,一般都是b/s架构,基于浏览器的,而app则是c/ ...
- web测试一般分为那几个阶段,哪些阶段是可以用工具实现的,都有些什么工具,哪些阶段必须要人工手动来实现呢?
这是我在知乎上遇到的一个问题: web测试一般分为那几个阶段,哪些阶段是可以用工具实现的,都有些什么工具,哪些阶段必须要人工手动来实现呢? 首先这个提问本身就是有问题的, 没有哪个阶段是用工具实现的, ...
- 关于web测试
关于web测试1页面部分(1) 页面清单是否完整(是否已经将所需要的页面全部都列出来了)(2) 页面是否显示(在不同分辨率下页面是否存在,在不同浏览器版本中页面是是否显示)(3) 页面在窗口中的显示是 ...
随机推荐
- 数据可视化之powerBI基础(十八)Power BI度量值的格式如何修改?这里有三种方式
https://zhuanlan.zhihu.com/p/99818030 在知识星球遇到的问题中,有不少朋友问如何修改数值型度量值的格式,比如,新建的度量值如何显示为百分比或者千分位等等,这篇文章 ...
- python生成器原理剖析
python生成器原理剖析 函数的调用满足"后进先出"的原则,也就是说,最后被调用的函数应该第一个返回,函数的递归调用就是一个经典的例子.显然,内存中以"后进先出&quo ...
- Django框架06 /orm多表操作
Django框架06 /orm多表操作 目录 Django框架06 /orm多表操作 1. admin相关操作 2. 创建模型 3. 增加 4. 删除 5. 修改 6. 基于对象的跨表查询 7. 基于 ...
- 循序渐进VUE+Element 前端应用开发(15)--- 用户管理模块的处理
在前面随笔介绍了ABP+Vue前后端的整合处理,包括介绍了ABP的后端设计,以及前端对ABP接口API的ES6的封装,通过JS的继承类处理,极大减少了重复臃肿的代码,可以简化对后端API接口的封装,而 ...
- P1136 迎接仪式 题解
题目描述 LHX教主要来X市指导OI学习工作了.为了迎接教主,在一条道路旁,一群Orz教主er穿着文化衫站在道路两旁迎接教主,每件文化衫上都印着大字.一旁的Orzer依次摆出"欢迎欢迎欢迎欢 ...
- oracle数据库查询分组之外的数据方法
select * from (select t.*,row_number() over(partition by 分组字段 order by rownum) rn from 表名 t where 条件 ...
- oracle创建Javasource实现数据库备份
因客户需求,需要在业务系统中,菜单中的网页中的按钮中加入一个按钮,用于点击备份数据库 (环境:只配置了数据源连接oralce ,应用服务器和数据服务器不在一台机器,且数据库机器oracle操作系统账号 ...
- 「美团面试系列」面试加分项,这样说你会JVM,面试官还能问什么
Java性能调优都是老生常谈的问题,特别当“糙快猛”的开发模式大行其道时,随着系统访问量的增加.代码的臃肿,各种性能问题便会层出不穷. 比如,下面这些典型的性能问题,你肯定或多或少都遇到过: 在进行性 ...
- 【mysql】- 锁篇(下)
InnoDB存储引擎中的锁 表级锁 表级别的S锁.X锁 在对某个表执行SELECT.INSERT.DELETE.UPDATE语句时,InnoDB存储引擎是不会为这个表添加表级别的S锁或者X锁的 表级别 ...
- mysql 5.7.13 安装配置方法
linux环境Mysql 5.7.13安装教程分享给大家,供大家参考,具体内容如下: 1系统约定 安装文件下载目录:/data/software Mysql目录安装位置:/usr/local/mysq ...