测试小卒子--python--Django 测试框架

之前做接口测试的时候,一直在用jmeter做,虽然使用简单方便,但是对于接口返回数据的校验,处理方式还是不够简便。于是便开始通过编写脚本来进行接口测试,至于用什么语言来编写,这还用想,当然是python了。

如果只是写脚本的话,用python自身的requests就可以了,写起来也比较简单。但是在不断的脚本积累过程当中,会发现python的一些方法太过于繁琐,在不断的改进过程当中,发现了Django rest framework,这个开源框架。

其实testing只是Django rest framework中的一部分。正如他的官方文档所说:Django REST framework 是一个轻量级的库,可以很容易地构建Web API。它被设计为一个模块化,易于自定义的体系结构,基于Django的基础类视图,而testing又只是Django rest framework中的一个模块。

个人觉得Django rest framework 就是在Django 的基础上重写了一些方法,应用起来更方便。

言归正传,继续谈这个测试框架, 其实我在上面已经把为什么用这个框架的背景说的很清楚了。在实现接口测试自动化的时,我们需要准备一些必备的环境和软件。

1、环境搭建
python 2.7.8 (个人目前在用2.7.8版本的,对于3以上的版本不太熟悉,之后会学习)
Django (1.7+, 1.8, 1.9)
python-mysql
django rest framework(2.4.3)
django-nose (1.4.2)
coverage(4.0.1)
nose(1.3.7)
pytest(2.6.4)
pip(6.1.1)

在搭建环境的过程中,需要安装python,然后安装pip ,以上的其他,可以用 pip install 进行安装。

2、配置文件

安装好以上所列的package后,就可以创建你自己的测试项目了,因为考虑到框架的原因,我们用django 的命令去创建项目。

django-admin.py startproject test 创建一个名叫test的测试项目
执行这个命令后,test这个项目就创建成功了,在这个项目中包含以下文件:

manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
init.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
settings.py: 该 Django 项目的设置/配置。
urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站”目录”。
wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。

这时文件的基本内容就确定了,这时,你可以在test项目中,创建你需要的文件夹。例如存放cases, libs, utils 等等。

3、编写合适的测试报告输出配置文件

我们既然要实现接口自动化,就需要一个检验的标准,这个标准就是测试报告,我们可以在settings.py文件夹中,设置输出测试报告的形式,包含html,xml 形式的测试报告甚至还可以输出覆盖率报告。
之前的package中包含了,coverage 和 nose 这两个包,下面是官方文档,
http://pythontesting.net/framework/nose/nose-introduction/

http://coverage.readthedocs.io/en/latest/

可以参照这个内容进行settings.py中文件的配置。我做了一写简单的配置,如下所示。

NOSE_ARGS = [
    '--with-coverage',
    '--cover-package=test_package,...',
    '--cover-erase',
    '--cover-html',
    '--cover-html-dir = path',
    '--cover-inclusive',
]

4、执行

配置好上述的步骤后,就可以编写测试脚本了,例如:

test.py

#!/usr/local/bin/python
#-*- coding: utf-8  -*-

from rest_framework.test import APITestCase
from rest_framework.test import APIClient

class TestCase(APITestCase):
    '''
    test case 
    '''
    def testcase(self):
        response = self.client.get('http://www.baidu.com')
        self.assertEqual(response.status, 200)

之后执行 ./manage.py test test.py 就可以了。

好啦,到现在我们的自动化框架就搭好啦。之后对框架的内容进行补充就可以了。如果有什么建议或者问题,可以留言给我,我会加以改正和解答。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值