热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python接口数据驱动_013python接口数据驱动ddt

时间:20181105目录:一:安装ddt二:禅道登录1工程结构2unittest文件3实现功能文件4执行结果三:使用excel1安装xlrd2准

736016-20181105003637781-1781839015.jpg

'''时间:2018/11/05

目录:

一: 安装ddt

二: 禅道登录

1 工程结构

2 unittest文件

3 实现功能文件

4 执行结果

三: 使用excel

1 安装xlrd

2 准备测试数据

四: 禅道登录

1 工程结构

2 unittest文件

3 实现功能文件

4 read_excel.py

5 执行结果'''

一: 安装ddt

736016-20181105003834678-429421109.png

1 : 运行输入"cmd",进入Dos窗口。

2 : 输入"pip install ddt"(安装ddt模块)。

736016-20181105004045619-1516244453.png

1 : 输入"pip list"(查看安装的库)。

2 : 可以看见已经安装了ddt(1.2.0)。

736016-20181105004112760-1222533069.png

1 : 输入"pip show ddt"(查看ddt的信息)。

二: 禅道登录

1 工程结构

736016-20181105004525720-23201289.png

2 unittest文件

#coding:utf-8

importunittestimportddtimportrequestsfrom DataDriver.chandao_login_api import *data= [{"user": "admin", "psw": "123456", "expect": True},

{"user": "admin2", "psw": "123456", "expect": False},

{"user": "admin", "psw": "123456", "expect": True},

{"user": "admin4", "psw": "123123", "expect": False}

]

@ddt.ddtclassTest(unittest.TestCase):defsetUp(self):

self.session=requests.session()deftearDown(self):

self.session.COOKIEs.clear()#清除缓存 - COOKIEs

self.session.close() #去除警告 - 关闭进程

@ddt.data(*data) #*data : 分组传送 - 字典类型

deftest_001(self, testData):

strUser= testData["user"]

strPass= testData["psw"]

strResult=Login(self.session, strUser, strPass)

bResult=DecideResult(strResult)

self.assertTrue(bResult== testData["expect"])if __name__ == '__main__':

unittest.main()

3 实现功能文件

#coding:utf-8

importrequests

url= "http://127.0.0.1/zentao/user-login.htm" #url经常变 : 做全局变量 - 做配置文件

defLogin(session, strUser, strPass):'''登录禅道

:param session: session

:param strUser: 用户名

:param strPass: 密码

:return: 请求结果 - 服务端'''body={"account": strUser,"password": strPass,"keepLogin[]": "on","referer": "/zentao/my.html"}

r= session.post(url, data =body)

strResult= r.content.decode("utf-8")returnstrResultdefDecideResult(strResult):'''判断结果 - 登录禅道

:param strResult: 请求结果 - 服务端

:return: True - 登录成功

Fasle - 登录失败'''

if "登录失败" instrResult:print("登录失败")returnFalseelif "parent.location" instrResult:print("登录成功")returnTrueelse:print("登录失败 - 其他情况")returnFalseif __name__ == '__main__':

s=requests.session()

result= Login(s, "admin", "123456")

DecideResult(result)

4 执行结果

736016-20181105004802767-1285573305.png

1 : 测试用例全部运行pass。

736016-20181105004904124-1597597698.png

1 : 测试用例有failed。

三: 使用excel

1 安装xlrd

736016-20181105004922203-369114401.png

1 : 运行输入"cmd",进入Dos窗口。

2 : 输入"pip install xlrd"(安装xlrd模块)。

736016-20181105004949646-507958746.png

1 : 输入"pip list"(查看安装的库)。

2 : 可以看见已经安装了xlrd(1.1.0)。

2 准备测试数据

736016-20181105005112930-313726248.png

1 : 创建excel文件,命名为testData。

2 : 填写测试数据。

四: 禅道登录

1 工程结构

736016-20181105005348927-336441282.png

2 unittest文件

#coding:utf-8

importunittestimportddtimportrequestsfrom DataDriver.chandao_login_api import *

from DataDriver.read_excel importExcelUtil

data= ExcelUtil("testData.xlsx", "Sheet1")

data=data.dict_data()print(data)

@ddt.ddtclassTest(unittest.TestCase):defsetUp(self):

self.session=requests.session()deftearDown(self):

self.session.COOKIEs.clear()#清除缓存 - COOKIEs

self.session.close() #去除警告 - 关闭进程

@ddt.data(*data) #*data : 分组传送 - 字典类型

deftest_001(self, testData):

strUser= testData["user"]

strPass= testData["psw"]

strResult=Login(self.session, strUser, strPass)

bResult=DecideResult(strResult)

self.assertTrue(str(bResult)== testData["expect"])if __name__ == '__main__':

unittest.main()

3 实现功能文件

#coding:utf-8

importrequests

url= "http://127.0.0.1/zentao/user-login.htm" #url经常变 : 做全局变量 - 做配置文件

defLogin(session, strUser, strPass):'''登录禅道

:param session: session

:param strUser: 用户名

:param strPass: 密码

:return: 请求结果 - 服务端'''body={"account": strUser,"password": strPass,"keepLogin[]": "on","referer": "/zentao/my.html"}

r= session.post(url, data =body)

strResult= r.content.decode("utf-8")returnstrResultdefDecideResult(strResult):'''判断结果 - 登录禅道

:param strResult: 请求结果 - 服务端

:return:'''

if "登录失败" instrResult:print("登录失败")returnFalseelif "parent.location" instrResult:print("登录成功")returnTrueelse:print("登录失败 - 其他情况")returnFalseif __name__ == '__main__':

s=requests.session()

result= Login(s, "admin", "123456")

DecideResult(result)

4 read_excel.py

#coding:utf-8

importxlrdclassExcelUtil():def __init__(self, excelPath, sheetName="Sheet1"):

self.data=xlrd.open_workbook(excelPath)

self.table=self.data.sheet_by_name(sheetName)#获取第一行作为key值

self.keys =self.table.row_values(0)#获取总行数

self.rowNum =self.table.nrows#获取总列数

self.colNum &#61;self.table.ncolsdefdict_data(self):if self.rowNum <&#61; 1:print("总行数小于1")else:

r&#61;[]

j&#61;1

for i in range(self.rowNum-1):

s&#61;{}#从第二行取对应values值

values &#61;self.table.row_values(j)for x inrange(self.colNum):

s[self.keys[x]]&#61;values[x]

r.append(s)

j&#43;&#61;1

returnrif __name__ &#61;&#61; "__main__":

filepath&#61; "testData.xlsx"sheetName&#61; "Sheet1"data&#61;ExcelUtil(filepath, sheetName)print(data.dict_data())

5 执行结果

736016-20181105005640818-1109092408.png

1 : 测试用例全部运行pass。

736016-20181105005748837-870336441.png

1 : 测试用例有failed。



推荐阅读
  • 本文介绍了Python对Excel文件的读取方法,包括模块的安装和使用。通过安装xlrd、xlwt、xlutils、pyExcelerator等模块,可以实现对Excel文件的读取和处理。具体的读取方法包括打开excel文件、抓取所有sheet的名称、定位到指定的表单等。本文提供了两种定位表单的方式,并给出了相应的代码示例。 ... [详细]
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • Python操作MySQL(pymysql模块)详解及示例代码
    本文介绍了使用Python操作MySQL数据库的方法,详细讲解了pymysql模块的安装和连接MySQL数据库的步骤,并提供了示例代码。内容涵盖了创建表、插入数据、查询数据等操作,帮助读者快速掌握Python操作MySQL的技巧。 ... [详细]
  • 本文总结了使用不同方式生成 Dataframe 的方法,包括通过CSV文件、Excel文件、python dictionary、List of tuples和List of dictionary。同时介绍了一些注意事项,如使用绝对路径引入文件和安装xlrd包来读取Excel文件。 ... [详细]
  • python中安装并使用redis相关的知识
    本文介绍了在python中安装并使用redis的相关知识,包括redis的数据缓存系统和支持的数据类型,以及在pycharm中安装redis模块和常用的字符串操作。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • Python已成为全球最受欢迎的编程语言之一,然而Python程序的安全运行存在一定的风险。本文介绍了Python程序安全运行需要满足的三个条件,即系统路径上的每个条目都处于安全的位置、"主脚本"所在的目录始终位于系统路径中、若python命令使用-c和-m选项,调用程序的目录也必须是安全的。同时,文章还提出了一些预防措施,如避免将下载文件夹作为当前工作目录、使用pip所在路径而不是直接使用python命令等。对于初学Python的读者来说,这些内容将有所帮助。 ... [详细]
  • 通过Anaconda安装tensorflow,并安装运行spyder编译器的完整教程
    本文提供了一个完整的教程,介绍了如何通过Anaconda安装tensorflow,并安装运行spyder编译器。文章详细介绍了安装Anaconda、创建tensorflow环境、安装GPU版本tensorflow、安装和运行Spyder编译器以及安装OpenCV等步骤。该教程适用于Windows 8操作系统,并提供了相关的网址供参考。通过本教程,读者可以轻松地安装和配置tensorflow环境,以及运行spyder编译器进行开发。 ... [详细]
  • 本文介绍了协程的概念和意义,以及使用greenlet、yield、asyncio、async/await等技术实现协程编程的方法。同时还介绍了事件循环的作用和使用方法,以及如何使用await关键字和Task对象来实现异步编程。最后还提供了一些快速上手的示例代码。 ... [详细]
  • Window10+anaconda+python3.5.4+ tensorflow1.5+ keras(GPU版本)安装教程 ... [详细]
  • Python中的PyInputPlus模块原文:https ... [详细]
author-avatar
政平世财482
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有