网易首页 > 网易号 > 正文 申请入驻

Python自动化测试用例编写方法:requests通过excel读取测试用例

0
分享至

前言

编写正常的测试用例,一般都是通过excel进行编写的,当我们进行编写自动化测试用例的时,也是通过功能用例进行编写的,那么有没有方法直接通过python读取我们的excel然后完成自动化测试用例编写。

整体思路

1.通过Excel编写测试用例,整理测试数据;

2.通过Python读取Excel数据;

3.将读出来的数据进行放入到requests中进行请求并做对应断言。

整体思路其实很简单,就是通过python读取Excel然后在导入我们的requests中进行做接口自动化。

通过Excel编写用例

安静在网上找了一些开源的接口进行编写到Excel中,由于接口比较简单,就写了用例标题、url地址、请求方法、请求参数、预期结果等操作。

读取Excel

在python读取Excel的方法有很多,这里安静就介绍最常用的库xlrd xlrd可以进行完成对Excel的读取。xlrd属于Python的第三方库,需要重新安装。

安装:

pip install xlrd

通过上面的Excel通过Excel完成读取操作。

import xlrd

# 将excel进行实例化

book = xlrd.open_workbook('E:\\web\\123.xlsx')

# 通过下标方法读取sheet值

sheet = book.sheet_by_index(0)

# 通过name值进行读取sheet

# sheet = book.sheet_by_name('Sheet1')

# 获取列表的总数

nrows = sheet.nrows

# 循环读取每行数据

for i in range(1, nrows):

# 通过每行进行读取数据

# print(sheet.row_values(i))

# 将数据通过组合成dic+t格式

data = dict(zip(sheet.row_values(0), sheet.row_values(i)))

print(data)

安静在上面简单的介绍了读取数据的方法,上述代码中通过字典的形式获取到了excel的全部数据内容。

PS:这里通过字典的形式获取为了下面使用时好取值。

request请求用例

前面已经把用例需要用到的数据都已经存储下来了,那么接下来的就是需要进行发送请求。

这里通过requests的方式进行发送请求。先将requests请求进行简单的封装。通过把请求方式、请求类型、请求参数放入到requests中。

def Requests_result(item):

# 封装request请求,并读取数据

response = requests.request(

method=item['method'],

url=item['url'],

data=json.loads(item['body'])

)

result = response.json()['reason']

# 这里返回实际结果是否和预期值一样

return result == item['expect']

整体代码

pytest

上面已经将各个部分的内容都简单的做了介绍了,这里就直接上整体代码,这里通过requests+pytest+excel进行完成的读取excel数据完成测试用例。

import xlrd

import requests

import json

import pytest

def Read_Excel():

# 将excel进行实例化

book = xlrd.open_workbook('E:\\web\\123.xlsx')

# 通过下标方法读取sheet值

sheet = book.sheet_by_index(0)

# 循环读取每行数据

return [dict(zip(sheet.row_values(0), sheet.row_values(row))) for row in range(1, sheet.nrows)]

class Test_01:

def Requests_result(self, item):

# 封装请求

response = requests.request(

method=item['method'],

url=item['url'],

data=json.loads(item['body'])

)

result = response.json()['reason']

print(result)

return result == item['expect']

# 通过参数化的方式进行导入excel的数据

@pytest.mark.parametrize('item', Read_Excel())

def test_01(self, item):

response_result = self.Requests_result(item)

# 断言请求返回的结果是否为True

assert response_result == True

if __name__ == '__main__':

pytest.main(['-vs'])

通过执行发现,我们的requests已经通过excel来完成了测试读取测试用例。并通过单元测试-pytest完成了判断是否通过。

unittest

上述方法是通过pytest来完成的,那么unittest当然也可以完成。这里通过requests+unittest+ddt+excel进行来完成读取数据内容。

import xlrd

import requests

import json

import unittest

import ddt

def Read_Excel():

# 将excel进行实例化

book = xlrd.open_workbook('E:\\web\\123.xlsx')

# 通过下标方法读取sheet值

sheet = book.sheet_by_index(0)

# 循环读取每行数据

return [dict(zip(sheet.row_values(0), sheet.row_values(row))) for row in range(1, sheet.nrows)]

@ddt.ddt

class Test_01(unittest.TestCase):

def Requests_result(self, item):

response = requests.request(

method=item['method'],

url=item['url'],

data=json.loads(item['body'])

)

result = response.json()['reason']

return result

# 通过ddt进行读取数据

@ddt.data(*Read_Excel())

def test_01(self, data):

response_result = self.Requests_result(data)

self.assertTrue(response_result)

if __name__ == '__main__':

unittest.main()

执行发现,通过unittest的也成功的读取了excel的数据以及完成了接口内容。

总结

这里安静简单的介绍了如何通过python进行读取excel的方法从而实现了接口自动化的类似操作,当然如何运用到公司项目中,这个要看根据公司的项目来做了。

最后邀请想提升实力的测试人一起学习

如果你的也有很多问题想要解决,你的测试职业规划也需要一点光亮,你也想跟着大家一起分享探讨,我给你推荐一个「Python自动化测试学习交流群」你缺的知识这里有,你少的技能这里有,你要的大牛也在这里……

来吧!!一起进阶自动化测试!!  

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
25张难得一见的精彩照片,你没见过的世界,看后眼界都提高了

25张难得一见的精彩照片,你没见过的世界,看后眼界都提高了

农人老寓
2024-04-23 19:55:20
赖清德不再沉默,布林肯访华之时,他公开表态,坚决维护台海和平

赖清德不再沉默,布林肯访华之时,他公开表态,坚决维护台海和平

陈菲副教授
2024-04-24 17:53:58
时隔8年,叶诗文重回奥运会!夺冠直通巴黎,中国游泳首个金满贯

时隔8年,叶诗文重回奥运会!夺冠直通巴黎,中国游泳首个金满贯

黑色柳丁
2024-04-24 21:36:01
《浪姐5》颜值前十排名!各有各的风情,第一实至名归

《浪姐5》颜值前十排名!各有各的风情,第一实至名归

不八卦会死星人
2024-04-23 14:11:06
已确认:全部遇难

已确认:全部遇难

家在栖霞
2024-04-24 20:29:44
方媛带两个女儿参加婚礼,姐姐郭咏希像爸爸,姐妹当花童超可爱

方媛带两个女儿参加婚礼,姐姐郭咏希像爸爸,姐妹当花童超可爱

素素娱乐
2024-04-24 08:59:49
金价继续大跌!还能买吗?业内人士建议这么做

金价继续大跌!还能买吗?业内人士建议这么做

21世纪经济报道
2024-04-24 20:09:58
求锤得锤:英国将非法移民驱逐至卢旺达!并宣布进入战时模式

求锤得锤:英国将非法移民驱逐至卢旺达!并宣布进入战时模式

项鹏飞
2024-04-24 15:51:01
太蹊跷!上海小区一报废车长期占据车位,车主按时、足额交停车费,投资已过万,物业很无奈…

太蹊跷!上海小区一报废车长期占据车位,车主按时、足额交停车费,投资已过万,物业很无奈…

上观新闻
2024-04-24 17:26:26
庚欣:布林肯此次访华,可用4句话概括

庚欣:布林肯此次访华,可用4句话概括

直新闻
2024-04-24 19:17:33
落马省委书记的女下属,有新消息

落马省委书记的女下属,有新消息

政知新媒体
2024-04-24 19:44:02
一季度46万家餐饮店倒闭,同比激增232%!呷哺奈雪等关店

一季度46万家餐饮店倒闭,同比激增232%!呷哺奈雪等关店

餐饮老板内参
2024-04-21 10:42:30
李璇谈成耀东:陈戌源案没扯出他,可能真因为他是上港嫡系没收钱

李璇谈成耀东:陈戌源案没扯出他,可能真因为他是上港嫡系没收钱

直播吧
2024-04-24 22:02:15
加拿大华人女律师白天上法庭,晚上去卖淫:律协回应……

加拿大华人女律师白天上法庭,晚上去卖淫:律协回应……

巴蜀法眼
2024-04-23 20:19:51
开鲁县再发声!春耕不能停,费用仍得交,这次真错怪纪云浩了!

开鲁县再发声!春耕不能停,费用仍得交,这次真错怪纪云浩了!

古希腊掌管松饼的神
2024-04-24 10:03:40
这应该是一位女乘客留下来的。写在高铁提供的垃圾袋上,字迹不错

这应该是一位女乘客留下来的。写在高铁提供的垃圾袋上,字迹不错

作家李楠枫
2024-04-23 22:41:54
2024年上海养老金将调整,每月养老金6000元,算不算高的呢?

2024年上海养老金将调整,每月养老金6000元,算不算高的呢?

社保小达人
2024-04-24 13:17:31
美菲这次勾结非同寻常!将炮口对准中国,菲律宾干了日韩没敢干的事

美菲这次勾结非同寻常!将炮口对准中国,菲律宾干了日韩没敢干的事

趣史微视频
2024-04-24 01:20:08
4月24日俄乌最新:第115旅不战而退,乌军王牌血战Ocheretyne

4月24日俄乌最新:第115旅不战而退,乌军王牌血战Ocheretyne

西楼饮月
2024-04-24 09:18:02
尘埃落定!61岁名帅,重返英超,接9.2亿阵容,搅局争4

尘埃落定!61岁名帅,重返英超,接9.2亿阵容,搅局争4

球文速递
2024-04-25 00:08:33
2024-04-25 04:00:49
51Testing软件测试网
51Testing软件测试网
中国软件测试人的精神家园
1519文章数 13253关注度
往期回顾 全部

科技要闻

特斯拉被爆大量毁约应届生 友商"在线抢人"

头条要闻

美总统拜登签署剥离法案 TikTok发声明反对

头条要闻

美总统拜登签署剥离法案 TikTok发声明反对

体育要闻

足智多谋的哈姆,温水里的青蛙

娱乐要闻

方媛带两女儿参加婚礼,当花童超可爱

财经要闻

居民气价确实在涨,多地正普遍发生

汽车要闻

这灯效我能看半小时 奥迪Q6L e-tron有备而来

态度原创

家居
手机
艺术
数码
军事航空

家居要闻

光影之间 空间暖意打造生活律动

手机要闻

没有被遗忘!小米10S迎来澎湃OS正式版推送,你更新了吗?

艺术要闻

艺术名画︱爱尔兰画家大卫·科因的刀画作品

数码要闻

苹果5月7日发布会邀请函: 全新iPad Pro 2024将亮相

军事要闻

时隔5年土耳其或首部署俄制防空系统

无障碍浏览 进入关怀版