python之用unittest实现接口参数化示例

示例中获取参数的方法有三种:

1. 从文件(txt)中读取参数

2. 从Excel中读取参数

3. 在代码中直接写参数

def login(username,password):
    return ‘ok‘

import unittest
from parameterized import parameterized
import BeautifulReport as bf
import xlrd,xlwt

def file_to_list(file_name): #从文件中读取参数
    l = []
    with open(file_name,encoding=‘utf-8‘) as fr:
        for line in fr:
            line_list = line.strip().split(‘,‘)
            l.append(line_list)
    return l

def excel_to_list(file_name): #从Excel中读取参数
    l=[]
    book=xlrd.open_workbook(file_name)
    sheet=book.sheet_by_index(0)
    for row in range(1,sheet.nrows):#从第一行开始取值,取到最后一行
        l.append(sheet.row_values(row))#将每行的数据存入大列表中,每行数据都是一个list
    return l

class TestLogin(unittest.TestCase): #在代码中写入参数
    @parameterized.expand([
        [‘admin‘,‘1244‘,‘ok‘],
        [‘admin‘,‘1244‘,‘ok‘],
        [‘admin‘,‘1244‘,‘success‘],
        [‘admin‘,‘1244‘,‘success‘],
        ])
    def test_login1(self,username,password,hope):
        ‘‘‘登录‘‘‘
        result = login(username,password)
        self.assertEqual(hope,result)

    @parameterized.expand(file_to_list(‘register_data.txt‘)) #从文件中读取参数
    def test_reg(self,username,password):
        ‘文件注册‘
        print(username,password)

    @parameterized.expand(excel_to_list(‘reg_data.xls‘)) #从Excel中读取数据
    def test_reg1(self,username,password):
        ‘Excel注册‘
        print(username,password)

# unittest.main()
runner = bf.BeautifulReport(unittest.makeSuite(TestLogin))
runner.report(description=‘登录测试用例‘,filename=‘login.html‘)

以上代码执行结果:

..FF...............
测试已全部完成, 可前往E:\Python学习\pycharm\python脚本\day12查询测试报告

生成的报告如入:

原文地址:https://www.cnblogs.com/denise1108/p/10341322.html

时间: 2024-11-05 20:39:53

python之用unittest实现接口参数化示例的相关文章

python+requests+excel+unittest+ddt接口自动化数据驱动并生成html报告

前言 1.环境准备: python3.6 requests xlrd openpyxl HTMLTestRunner_api 2.目前实现的功能: 封装requests请求方法 在excel填写接口请求参数 运行完后,重新生成一个excel报告,结果写入excel 用unittest+ddt数据驱动模式执行 HTMLTestRunner生成可视化的html报告 对于没有关联的单个接口请求是可以批量执行的,需要登录的话写到setUpclass里的session里保持cookies token关联的

Python单元测试框架unittest之深入学习

前言 前几篇文章该要地介绍了python单元测试框架unittest的使用,本篇文章系统介绍unittest框架. 一.unittest核心工作原理 unittest中最核心的四个概念是:test case, test suite, test runner, test fixture. 下面我们分别来解释这四个概念的意思,先来看一张unittest的静态类图(下面的类图以及解释均来源于网络,原文链接): 一个TestCase的实例就是一个测试用例.什么是测试用例呢?就是一个完整的测试流程,包括测

Python实现各种排序算法的代码示例总结

Python实现各种排序算法的代码示例总结 作者:Donald Knuth 字体:[增加 减小] 类型:转载 时间:2015-12-11我要评论 这篇文章主要介绍了Python实现各种排序算法的代码示例总结,其实Python是非常好的算法入门学习时的配套高级语言,需要的朋友可以参考下 在Python实践中,我们往往遇到排序问题,比如在对搜索结果打分的排序(没有排序就没有Google等搜索引擎的存在),当然,这样的例子数不胜数.<数据结构>也会花大量篇幅讲解排序.之前一段时间,由于需要,我复习了

【转】python共享引用(多个变量引用)示例代码

python共享引用(多个变量引用)示例代码_python_脚本之家http://www.jb51.net/article/44109.htm python单个(一个)对象被多个变量引用又是怎么一回事儿呢?看下面代码 a = 3b = a 先上图(图1)吧,大家一看就一目了然了: 变量名和对象,在运行赋值语句b = a之后,变量a,b都指向了对象3的内存空间. 假设这时执行 a = 'python', a将指向刚创建的字符串对象. 我们再来试试这种情况: >>>list_1 = [1,2

OpenNebula Restfull 接口请求示例

Fri Jun 20 07:28:20 2014 [I]: 10.0.2.2 - - [20/Jun/2014 07:28:20] "POST /vmtemplate HTTP/1.1" 201 815 0.7095Fri Jun 20 07:28:59 2014 [I]: 10.0.2.2 - - [20/Jun/2014 07:28:59] "GET /vmtemplate/0 HTTP/1.1" 200 936 0.0734Fri Jun 20 07:29:0

Python脚本调用C#代码数据交互示例(hello world)

原地址: http://www.djangochina.cn/forum.php?mod=viewthread&tid=247 随着项目的逐渐收尾, 对IronPython脚本也越来越熟悉,这里为IronPython脚本感兴趣但不入门的朋友写几篇使用心得,这是第一个:最简单的hello world程序.        首先,我们必须有一个IronPython脚本引擎库(IronPython.dll),我用的版本是V1.0,你可以在网上直接下到相关源码,编译后即生成IronPython.dll.1

python开发面向对象基础:接口类&amp;抽象类&amp;多态&amp;多继承

一,接口类 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数名)且并未实现接口的功能,子类继承接口类,并且实现接口中的功能 开发中容易出现的问题 1 class Alipay: 2 ''' 3 支付宝支付 4 ''' 5 def pay(self,money): 6 print('支付宝支付了%s元'%money) 7 8 class Applepay: 9 ''' 1

天气查询接口演示示例

天气查询接口演示代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net.Security; using System.Security.Cryptography.X509Certificates; using System.Net; using System.IO; using System.IO.Compression; using Sy

火车票查询接口演示示例及返回示例代码

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net.Security; using System.Security.Cryptography.X509Certificates; using System.Net; using System.IO; using System.IO.Compression; using System.Text.Re