• Python+Unittest接口自动化测试(三)--使用Unittest生成测试报告


    1. 下载HTMLTestRunner,放到Python安装目录的Lib下

    导入验证一下,没有报错,说明是成功的

    二、代码实现部分

    1. RunMain模块:

    #coding=utf-8
    
    import requests
    import json
    
    class RunMain:
        """无构造器"""
        def send_get(self, url, data):
            res = requests.get(url=url, params=data).json()
            return res
    
    
        def send_post(self, url, data):
            res = requests.post(url=url, data=data).json()
            return res
    
    
        def run_main(self, url, method, data=None):
            res = None
            if method == 'GET':
                res = self.send_get(url, data)
            else:
                res = self.send_post(url, data)
            return res

    2. 主代码:

     1 #coding:utf-8
     2 
     3 import unittest
     4 from TestDemo_No_init import RunMain   # 导入之前写好的模块
     5 import json
     6 import HTMLTestRunner   # 导入刚才下载的HTMLTestRunner
     7 
     8 
     9 class TestMethod(unittest.TestCase):
    10     
    11     def setUp(self):
    12         self.run = RunMain()
    13 
    14 
    15     def test01(self):
    16         """这是一个POST的接口自动化测试"""    # 添加用例描述,增加HTML测试报告生成后的可读性
    17         url = 'http://127.0.0.1:8000/login/'
    18         data = {
    19             'username': 'Jessie',
    20             'password': '123456'
    21         }
    22         r = self.run.run_main(url, 'POST', data)
    23         print(r)
    24         re = json.dumps(r, indent=2, sort_keys=False, ensure_ascii=False)
    25         re_new = json.loads(re)
    26         self.assertEqual(re_new['user'], 'Jessie', '测试失败')
    27 
    28 
    29     def test02(self):
    30         """查询翻译词的接口"""
    31         url = 'http://fanyi.youdao.com/translate'
    32         data = {
    33             'doctype': 'json',
    34             'type': 'AUTO',
    35             'i': 'weather'
    36         }
    37         r = self.run.run_main(url, 'GET', data)
    38         print(r)
    39         re = json.dumps(r, indent=2, sort_keys=False, ensure_ascii=False)
    40         re_new = json.loads(re)
    41         self.assertEqual(re_new['errorCode'], 0, '测试失败')
    42 
    43 
    44     @unittest.skip('test03')   # 跳过test03测试用例
    45     def test03(self):
    46         url = 'http://fanyi.youdao.com/translate'
    47         data = {
    48             'doctype': 'json',
    49             'type': 'AUTO',
    50             'i': '天气'
    51         }
    52         r = self.run.run_main(url, 'GET', data)
    53         print(r)
    54         re = json.dumps(r, indent=2, sort_keys=False, ensure_ascii=False)
    55         re_new = json.loads(re)
    56         self.assertEqual(re_new['errorCode'], 0, '测试失败')
    57 
    58 
    59 
    60 if __name__ == '__main__':
    61     # unittest.main()
    62 
    63     filepath = 'G:/ImoocInterface/report/test_report.html'   # 测试报告生成的地址
    64     fp = open(filepath, 'wb')   # 文件流
    65 
    66     suite = unittest.TestSuite()
    67     suite.addTest(TestMethod('test01'))
    68     suite.addTest(TestMethod('test02'))
    69     # suite.addTest(TestMethod('test03'))
    70 
    71     # runner = unittest.TextTestRunner()
    72     # runner.run(suite)
    73     # unittest.TextTestRunner().run(suite)
    74 
    75     # stream:文件流  title:报告的标题  description:报告的描述信息
    76     runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title='测试报告', description='测试结果')
    77 
    78     runner.run(suite)   #HTML报告和Unittest结合
    79     fp.close()

    3. 运行

    注意:一定是运行这个py文件

     运行整个py文件的方法:

    选择菜单栏Run下面的Run

     会有一个弹框出来,直接选中要运行的py文件,然后点右上角的运行按钮

    三、查看测试报告

    1. 找到设置存放报告的目录G:ImoocInterface eport,果然有一份测试报告

    2. 打开报告查看详情

     

    IN A WORLD LIKE THIS 萬物之中,希望至美;至美之物,永不凋零
  • 相关阅读:
    在C#程序中模拟发送键盘按键消息
    C# UDPCLIENT多线程实例
    【转】WINFORM下FTP客户端的实现
    抓取屏幕或窗体并保存成图片
    c# 判断窗体已打开则显示为焦点
    【转】C#中dataGridView用法实例分析
    【转】VC6控件小记
    .Net部署二三事之一——如何为VS安装文件MSI制作更新补丁MSP
    [转]C#串口serialPort操作
    VS向IIS发布C#或VB应用程序
  • 原文地址:https://www.cnblogs.com/littlemonsterksn/p/14345660.html
Copyright © 2020-2023  润新知