接口自动化会用到数据驱动模式,也就是一个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. html的图片移动(js)

    <!DOCTYPE html><html><style> *{padding: 0;margin: 0} #open{ width: 300px; height: ...

  2. JS中For循环中嵌套setTimeout()方法的执行顺序

    在For循环中执行setTimeOut()方法的代码,执行顺序是怎样的呢? 代码如下 function time() { for(var i= 0;i<5;i++){ setTimeout(fu ...

  3. Navicat连接阿里云服务器MSQL数据库

    新买了台服务器Navicat老是连接不上数据库,查找一圈找到解决办法.So Easy 一.shell远程登录,进入数据库 mysql -uroot -p 二.输入以下命令进行授权: GRANT ALL ...

  4. PAT Advanced 1031 Hello World for U (20 分)

    Given any string of N (≥) characters, you are asked to form the characters into the shape of U. For ...

  5. git-shell设置代理

    Configure Git to use a proxy ##In Brief You may need to configure a proxy server if you're having tr ...

  6. 【leetcode】1110. Delete Nodes And Return Forest

    题目如下: Given the root of a binary tree, each node in the tree has a distinct value. After deleting al ...

  7. Python的命令行参数(argparse)

    参考:https://www.cnblogs.com/lindaxin/p/7975697.html 参考:https://www.cnblogs.com/dengtou/p/8413609.html ...

  8. 多线程之同时更改数据问题--启用lock

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  9. Bugku 杂项 隐写

    隐写 下载后打开压缩包发现是一张图片 用winhex打开 图中红色框内是PNG的PE头 在IHDR后面的八个字节(黄色框部分)为该图片的长度.宽度信息 将黄色框内最后一个字节由A4改为F4后另存为图片 ...

  10. Python pdfkit

    序言 住在地下室的人,依然有仰望星空的权利. pdfkit python使用pdfkit中,如果使用pdfkit.fromurl 或者pdfkit.fromstring等,就会出现上述错误.而且如果你 ...