接口自动化之ddt
接口自动化会用到数据驱动模式,也就是一个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的更多相关文章
- 【python接口自动化】- DDT数据驱动测试
简单介绍 DDT(Date Driver Test),所谓数据驱动测试,简单来说就是由数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变.通过使用数据驱动测试的方法,可以在需要验证多组数据 ...
- python+requests+excel+unittest+ddt接口自动化数据驱动并生成html报告(二)
可以参考 python+requests接口自动化完整项目设计源码(一)https://www.cnblogs.com/111testing/p/9612671.html 原文地址https://ww ...
- python+requests+excel+unittest+ddt接口自动化数据驱动并生成html报告(已弃用)
前言 1.环境准备: python3.6 requests xlrd openpyxl HTMLTestRunner_api 2.目前实现的功能: 封装requests请求方法 在excel填写接口请 ...
- python接口自动化1
组织架构: 包括配置文件,反射.文件路径.Excel操作.测试报告生成 case.config [MODE] file_name=case_data.xlsx mode={"register ...
- 新手入门贴之基于 python 语言的接口自动化 demo 小实战
大家好,我是正在学习接口测试的菜鸟.近期通过自己的学习,完成了一个关于测试接口的接口自动化demo.下面想跟大家分享一下,主要的思路是根据接口文档确定测试用例,并将测试用例写在excel中.因为只是小 ...
- 接口自动化--读取Excel操作(openpyxl)
上次我们已经将requests库封装成我们想要的样子了,我们的接口自动化已经完成了最开始的一步了,接下来我们需要完成我们相应的其他模块的封装,下面简单介绍下我们在接口自动化需要用到的模块吧在接口自动化 ...
- python脚本实现接口自动化轻松搞定上千条接口用例
接口自动化目前是测试圈主流的一个话题,我也在网上搜索了很多关于自动化的关键词,大多数博主分享的python做接口自动化都是以开源的框架,比如:pytest.unittest+ddt(数据驱动) 最常见 ...
- jmeter接口自动化集成
接口自动化集成 一.jmeter基础学习 1.博客 :http://www.cnblogs.com/fnng/category/345478.html 2.博客 http://www.cnblo ...
- Python+excel实现的简单接口自动化 V0.1
好久没写博客了..最近忙着工作以及新工作的事.. 看了下以前写的简单接口自动化,拿出来总结下,也算记录下学习成果 先来贴一下最后的结果,结果是写在原来的excel中 执行完毕后,会将结果写入到“状态” ...
随机推荐
- Chrome开发者工具详解(三)之浏览器调试完后如何清除所有的断点
- java流stream中的collect()方法详解
public class StreamTest { /** * stream.collect() 的本质由三个参数构成, * 1. Supplier 生产者, 返回最终结果 * 2. BiConsum ...
- Centos 修改当前路径显示为全路径
1.修改显示全路径: vim /etc/bashrc 找到[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\ ...
- Datatable中对某列求和,三种不同情况下的方法
C# code 方法一. object sumObject = DataTable.Compute("sum(Qty)", "TRUE"); 直接对数据表中的字 ...
- 004-sed 命令使用
sed 命令使用 主要作用是用来将数据进行选取,替换,删除,新增的命令,与vim类似 选项: -n : 只显示经过sed处理的数据,打印到屏幕 -e: 运行多个条件同时运行 -i: 直接修改文件 -p ...
- 计蒜客 蓝桥模拟 I. 天上的星星
计算二维前缀和,节省时间.容斥定理. 代码: #include <cstdio> #include <cstdlib> #include <cstring> #in ...
- pip install mysql_python报错解决办法
首先请注意,mysql_python只支持Python2,所以假如你是python3,就直接用python-connector去吧.下面这一条命令就可以了 pip install mysql-conn ...
- gremlin语言语法--学习笔记
学习gremlin语言的目的:测试图数据,支持gremlin语句,所以必须系统学习一下!!!! 一.基础查询 g.V() 查询所有的顶点 g.V(3) 查询顶点id为3的点.字符串id的要到引号V(& ...
- 初识Django之前端后端与数据库的配置
目录 一.静态文件配置 二.关于form表单的补充 三.post请求出现403问题 四.request方法初识 4.1判断当前请求方式 4.2request.POST与request.GET 五.py ...
- 【NOIP2013模拟】归途与征程
题目 分析 好吧...明显是暴力题. 首先,把A串分成只有小写字母组成的小分串,按顺序存放:A[1].A[2].A[3]--. 对于同构循环串,显然把两个B串合在一起,成为一个新的C串.\(C[i.. ...