QT4SDemo工程

此工程是为了示范qt4s框架使用方式的demo工程。

快速上手

环境准备: 1-安装python,如 2.7.13、2.7.16,配置好环境变量,包括根目录、Scripts目录、Tools目录 2-安装python组件,pip、setuptools,附下载地址 https://mirrors.cloud.tencent.com/pypi/packages/8b/8a/1b2aadd922db1afe6bc107b03de41d6d37a28a5923383e60695fba24ae81/pip-19.2.1.tar.gz#md5=e9ac3e030e88b6c076a20ab371a30742 https://mirrors.cloud.tencent.com/pypi/packages/25/4e/1b16cfe90856235a13872a6641278c862e4143887d11a12ac4905081197f/setuptools-28.8.0.tar.gz#md5=43d6eb25f60e8a2682a8f826ce9e3f42 3-安装ide,如 PyCharm

拉取测试代码并安装依赖:

git clone http://git.code.oa.com/ittest/QTA-QT4S-Demo.git
在代码根目录执行 :
pip install -r requirements.txt -i http://pypi.dq.oa.com/simple --trusted-host pypi.dq.oa.com

检查组件: 在控制台中输入pip list , 可以看到的组件有 pip、setuptools、qt4s 即代表环境准备完成

命令行执行测试用例

python manage.py runscript projtest/http_demo.py

可以看到,在命令行用例的执行情况,执行了一个测试用例,并且都通过了。

我们上面是在命令行执行的测试用例,可以导入到PyCharm 中开始编写自己的测试用例。

编写测试用例

编写用例

我们先看下工程中已有的测试用例projtest.http_demo,代码如下:

class HttpDemoTest(TestCase):
   '''http demo testcase
  '''
   timeout = 5
   owner = 'willtang'
   priority = TestCase.EnumPriority.High
   status = TestCase.EnumStatus.Ready

   def run_test(self):
       self.start_step('准备测试数据')

       self.start_step('发送请求并获取回包')
       rsp_body, rsp_code, rsp_headers = visit()
       # 判断预期数据是否在返回页面中,将判断结果保存在 result
       result = "关于我们" in rsp_body

       self.start_step('检查回包内容')
       self.assert_("返回码错误", rsp_code == 200)
       self.assert_("返回页面错误", result == True)

可以看到,一个用例就是一个类,这个类继承自TestCase。

一个用例,有4个属性:

  • timeout,用例执行最大的超时时间

  • owner,用例的作者

  • priority,用例的优先级

  • status,用例的状态

用例定义了run_test方法,当用例执行的时候,就是从run_test入口开始的。更多用例相关的内容,如用例的初始化和清理,可以参考:设计测试用例

这里我们主要关注一个后台测试用例的步骤,上面代码中,可以清晰看到,用例包含了三个步骤:

  • 准备测试数据,

  • 调用自己定义的接口(所有的接口定义都在projlib中),发送请求并获取回包

  • 检查回包,对回包的内容进行检查,使用了断言

基本上,对每个后台的请求收发,都可以按照上面的模式进行套用。可以看到通过对通道和请求的封装,用例的内容是非常简单的。

更加详细的命令行执行测试用例的方式可以参考文档:执行测试

ps:可以结合洞悉dongxi库、 codecc插件做安全测试