接口自动化会用到数据驱动模式,也就是一个ddt模块

目录

1、环境准备

2、调用时标准格式

3、应用(结合excle来传值)

1、环境准备

首先,需要安装ddt模块

pip install ddt

2、调用时标准格式

在类下面如下写上:@ddt.ddt

在调用的方法下面需要写上:@ddt.data(需要传入的多组数据)

3、应用(结合excle来传值)

第一步:写一个excle取数据方法:

# coding:utf-8

import xlrd
class ExcelUtil():
def __init__(self,exclePath,sheetName="sheet1"):
self.data=xlrd.open_workbook(exclePath)
self.table=self.data.sheet_by_name(sheetName)
#获取第一行作为key值
self.keys=self.table.row_values(0)
#获取总行数
self.rowNum=self.table.nrows
#获取总列数
self.colNum=self.table.ncols def dict_data(self):
if self.rowNum<=1:
print ("总行数小于1")
else:
r=[]
j=1
for i in list(range(self.rowNum-1)):
s={}
#从第二行取对应value值
s['rowNum']=i+2
values=self.table.row_values(j)
for x in list(range(self.colNum)):
s[self.keys[x]]=values[x]
r.append(s)
j+=1
return r #返回的是excle的每一行的值 #调试一下,上面函数是否正确
if __name__ =="__main__":
filepath ="D:\\1.xlsx"
sheetName="Sheet1"
data=ExcelUtil(filepath,sheetName)
print(data.dict_data())

第二步:写一个接口模块,一个case模块

第三步:在case模块中使用ddt模块、接口模块,来使用excle传入参数值

# coding:utf-8

import requests
import unittest
import ddt
import readexcle1
import login01 #excle放在文件下,就可以直接只写文件名
d=readexcle1.ExcelUtil("D:\\1.xlsx", sheetName="Sheet1") #带上模块名,不然会报错
data1 = d.dict_data() @ddt.ddt
class Test(unittest.TestCase):
def setUp(self):
self.s = requests.session() #在这一步,就会取每一行的数据进行用例的执行
@ddt.data(*data1)
def test_(self, A): #通过参数A,来取列表的每一行的每一个值
# print("测试用例数据:%s"%aaaa)
user = A['user']
password = A['password']
q=login01.Login01()
result =q.login01(user, password)
# print(result)
login_result = login01.is_login_sucess(result)
# print("实际结果:%s" % login_result) # 实际结果 bool
expect = A['expect'] # 取文件中的True和用例跑出来的True对比,做期望值
# print str(login_result)
self.assertTrue(str(login_result) == expect) #实际结果为bool值,转成字符串与期望结果做对比 if __name__ == "__main__":
unittest.main()

  

接口自动化之ddt的更多相关文章

  1. 【python接口自动化】- DDT数据驱动测试

    简单介绍 ​ DDT(Date Driver Test),所谓数据驱动测试,简单来说就是由数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变.通过使用数据驱动测试的方法,可以在需要验证多组数据 ...

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

    可以参考 python+requests接口自动化完整项目设计源码(一)https://www.cnblogs.com/111testing/p/9612671.html 原文地址https://ww ...

  3. python+requests+excel+unittest+ddt接口自动化数据驱动并生成html报告(已弃用)

    前言 1.环境准备: python3.6 requests xlrd openpyxl HTMLTestRunner_api 2.目前实现的功能: 封装requests请求方法 在excel填写接口请 ...

  4. python接口自动化1

    组织架构: 包括配置文件,反射.文件路径.Excel操作.测试报告生成 case.config [MODE] file_name=case_data.xlsx mode={"register ...

  5. 新手入门贴之基于 python 语言的接口自动化 demo 小实战

    大家好,我是正在学习接口测试的菜鸟.近期通过自己的学习,完成了一个关于测试接口的接口自动化demo.下面想跟大家分享一下,主要的思路是根据接口文档确定测试用例,并将测试用例写在excel中.因为只是小 ...

  6. 接口自动化--读取Excel操作(openpyxl)

    上次我们已经将requests库封装成我们想要的样子了,我们的接口自动化已经完成了最开始的一步了,接下来我们需要完成我们相应的其他模块的封装,下面简单介绍下我们在接口自动化需要用到的模块吧在接口自动化 ...

  7. python脚本实现接口自动化轻松搞定上千条接口用例

    接口自动化目前是测试圈主流的一个话题,我也在网上搜索了很多关于自动化的关键词,大多数博主分享的python做接口自动化都是以开源的框架,比如:pytest.unittest+ddt(数据驱动) 最常见 ...

  8. jmeter接口自动化集成

    接口自动化集成 一.jmeter基础学习 1.博客  :http://www.cnblogs.com/fnng/category/345478.html 2.博客   http://www.cnblo ...

  9. Python+excel实现的简单接口自动化 V0.1

    好久没写博客了..最近忙着工作以及新工作的事.. 看了下以前写的简单接口自动化,拿出来总结下,也算记录下学习成果 先来贴一下最后的结果,结果是写在原来的excel中 执行完毕后,会将结果写入到“状态” ...

随机推荐

  1. Python性能分析工具Profile

    Python性能分析工具Profile 代码优化的前提是需要了解性能瓶颈在什么地方,程序运行的主要时间是消耗在哪里,对于比较复杂的代码可以借助一些工具来定位,python 内置了丰富的性能分析工具,如 ...

  2. Python 操作sqlite数据库及保存查询numpy类型数据(二)

    # -*- coding: utf-8 -*- ''' Created on 2019年3月6日 @author: Administrator ''' import sqlite3 import nu ...

  3. ELK7.X中配置x-pack

    ELK7.X中配置x-pack 1.X-Pack简介 X-Pack是一个Elastic Stack的扩展,将安全,警报,监视,报告和图形功能包含在一个易于安装的软件包中.虽然elasticsearch ...

  4. LoadPicture函数用法示例

    VB语言中LoadPicture函数用法示例: 本例使用 LoadPicture 函数将图片加载到窗体的 PictureBox 控件并从控件上清除掉该图片. 要试用此例,将 PictureBox 控件 ...

  5. 10年前文章_嵌入开发使用的服务器配置 tftp ,http,nfs

    tftp server 安装 dnsmasq,  在目录 /etc/dnsmasq.d 下生成包含如下内容的配置文件 tftp.conf enable-tftptftp-root=/tftpboot ...

  6. ubuntu 安装nvidia driver

    错误的命令:sudo apt-get install nvidiar-430好多教程都是这样 sudo apt-get install nvidia-driver-430  很奇怪这个命令变成这样 h ...

  7. Qt的ui->setupUi(this)在做什么?

    ui->setupUi() 新建好Qt的工程之后,总是会在MainWindow函数中有一行代码 ui->setupUi(this); 跟踪进这行代码 class Ui_MainWindow ...

  8. linux系统快速搭建ftp服务器——实现匿名用户和创建用户访问服务器

    一.准备工作: linux系统为CentOS Linux release 7.5.1804 (Core)  可以使用 lsb_release -a  命令查看 window系统中安装 SecureCR ...

  9. 生成keystore

    Android平台打包发布apk应用,需要使用数字证书(.keystore文件)进行签名,用于表明开发者身份,可以使用JRE环境中的keytool命令生成.以下是windows平台生成证书的方法: 安 ...

  10. MySQL简版(一)

    第一章 数据库的基本概念 1.1 数据库的英文单词 Database,简称DB. 1.2 什么是数据库? 用于存储和管理数据的仓库. 1.3 数据库的特点 持久化存储数据的.其实数据库就是一个文件系统 ...