Python+HTMLTestRunnerCN 生成接口自动化报告

1、下载地址

链接: https://pan.baidu.com/s/1k1F1NPoiwOBfgvTmDWoIng 
提取码: 2rih 
  • 脚本说明 init_test.py 文件为 unittest 用例初始化,aip_test.py 文件为 用例集,request_xxx.py 文件为 api 接口请求,函数返回 result_text 值和 用例集中的 assertEqual 配合使用,run_test.py 运行测试集合,生成测试 HTML。

2、代码

  • init_test.py
# -*- coding: utf-8 -*-
import os
import unittest  

class SetupTeardwon(unittest.TestCase): #继承类,写测试用例
    # def setUp(self):               # 测试前环境准备
    #     print("用例执行前环境准备")

    # def tearDown(self):            #测试后环境还原
    #     print("用例执行后环境还原")
    @classmethod
    def setUpClass(self):
        print("============begin============")

    @classmethod
    def tearDownClass(self):
        print("=============end=============")

  • api_test.py
# -*- coding: utf-8 -*-

import os
import unittest   

from init_test import SetupTeardwon     # 导入需要测试的模块
from request_get import search_ip
from request_post import search_news

class TestCase(SetupTeardwon):      #继承类,写测试用例

    def test_case1(self):            # 测试方法,必须以test开头
        self.assertEqual(True,search_ip())

    def test_case2(self):            # 测试方法,必须以test开头
        self.assertEqual(True,search_news())

    def test_case3(self):            # 测试方法,必须以test开头
        self.assertEqual(True,search_ip())

    def test_case4(self):            # 测试方法,必须以test开头
        self.assertEqual(False,search_news(),'接口返回结果错误')

  • request_get.py
# -*- coding: utf-8 -*-

import requests
import json
import os

def search_ip():
    params = {
    "longitude":"121.04925573429551",
    "latitude":"31.315590522490712"
    }
    url = "http://ditu.amap.com/service/regeo"
    res = requests.get(url,params)
    if (res.status_code == 200) & (int(res.json()['status']) == int(1)):
            result_text = True
    else:
        result_text = False
        print (res.status_code,res.text)   
    # print (result_text) 
    return result_text
    
if __name__ == '__main__':
    search_ip()
  • request_post .py
# -*- coding: utf-8 -*-

import requests
import json
import os

def search_news():
    body = {
    "page": 1,
    "count": 5
    }
    url = "https://api.apiopen.top/getWangYiNews"
    res = requests.post(url,body)
    # print (res.status_code)
    # print (res.text)
    if (res.status_code == 200) & (int(res.json()['code']) == int(200)):
        result_text = True
    else:
        result_text = False
        print (res.status_code,res.text)   
    # print (result_text) 
    return result_text

if __name__ == '__main__':
    search_news()
    
  • run_test.py
# -*- coding: utf-8 -*-
import os
import unittest
from api_test import TestCase
import HTMLTestRunnerCN
import time

if __name__ == '__main__':
    suite = unittest.TestLoader().loadTestsFromTestCase(TestCase)
    # unittest.TextTestRunner(verbosity=2).run(suite)
    fileName = time.strftime('%Y-%m-%d %H-%M-%S',time.localtime())
    filePath = fileName + '-ReportCN.html'
    fp = open(filePath,'wb')
    #生成报告的Title,描述
    runner = HTMLTestRunnerCN.HTMLTestReportCN(
        stream=fp,
        title='接口自动化测试报告',
        description='详细测试用例结果',
        tester='XXXX'
        )
    #运行测试用例
    runner.run(suite)
    # 关闭文件,否则会无法生成文件
    fp.close()
  • HTMLTestRunnerCN.py
https://codeload.github.com/findyou/HTMLTestRunnerCN/zip/dev

3.运行效果

Python+HTMLTestRunnerCN 生成接口自动化报告_第1张图片

你可能感兴趣的:(接口测试,Python)