用python写测试用例,然后运行run.py可直接生成一个html的用例报告,如下图
点击可以查看详细的错误信息。
先看下run.py代码,只需要配置 跟 ,运行run.py就好自动生成上面的报告了
# coding=utf-8
import os
from autoCirclq.runner.TestCaseRun import TestCaseRun
# 获取上层目录
global_path = os.path.abspath(os.path.join(os.path.dirname(__file__), os.path.pardir))
# 输出报告路径
report_dir = global_path + os.sep + "test_reports"
# 用例路径 注意该路径下,只能是用例类,不能有其他类型的类
cases_dir = global_path + os.sep + 'test_cases'
# 生成报告
# 第一个参数为用例路径,第二个参数为输出报告
TestCaseRun(cases_dir,report_dir,'用例报告')
我们看下用例类,支持数据库连接跟http请求。
# coding=utf-8
import json
import unittest
from automate.common.util import HttpUtil, DBUtil
from unittest2 import TestResult
from config import ConfigFactory
class AAA(unittest.TestCase):
def test(self):
"""
get接口请求,并且取出数据data-》0-》name的值跟数据库进行断言
"""
url = ConfigFactory.get_url("temple", "url")
params = {
"page": 0,
"limit": 10
}
# 接口请求
response = HttpUtil.get(url, params)
response_json = json.loads(response.text)
# 数据库连接
db_connection = ConfigFactory.get_db("db")
if db_connection is None:
self.fail("数据库连接异常,请检查数据库")
else:
db_result = DBUtil.execute_query_sql(db_connection, "select * from user")
# 关闭数据库连接
DBUtil.close_connection(db_connection)
if 200 == response.status_code:
# 对比接口请求的数据下的dtaa[0]的name值
# 跟数据库的name值进行断言
self.assertEqual(response_json['data'][0]['name'], db_result[0]["name"])
def test2(self):
"""
get接口
"""
url = ConfigFactory.get_url("temple", "url")
params = {
"page": 0,
"limit": 10
}
response = HttpUtil.get(url, params)
self.assertEqual(200, response.status_code)
这样的用例类就会生成这样的报告,AAA类下有2个用例。
做这些之前肯定要先导入第三方库automate-report
如果安装不上去则用命令pip install automate-report
~~