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

Posted 程序员小濠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了干货文章Python自动化测试用例编写方法:requests通过excel读取测试用例相关的知识,希望对你有一定的参考价值。

关注我,每天分享软件测试技术干货、面试经验,想要领取测试资料、进入软件测试学习交流群的可以关注我的公众号【程序员小濠】

前言

编写正常的测试用例,一般都是通过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自动化测试专属视频、Python自动化详细资料、全套面试题等知识内容。对于软件测试的的朋友来说应该是最全面和完整的备战仓库了,这个仓库也陪伴我走过了很多坎坷的路,希望也能帮助到你。

关注我的微信公众号:【 程序员小濠】免费获取~

送上一句话:

世界的模样取决于你凝视它的目光,自己的价值取决于你的追求和心态,一切美好的愿望,不在等待中拥有,而是在奋斗中争取。

我的软件测试交流群:175317069,群里有测试大牛分享经验~

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

以上是关于干货文章Python自动化测试用例编写方法:requests通过excel读取测试用例的主要内容,如果未能解决你的问题,请参考以下文章

自动化测试用例的原子性#yyds干货盘点#

一篇文章搞懂unittest单元测试框架

python自动化web自动化:6.测试框架实战二之页面page类用例编写失败截图及测试报告

最完整的自动化测试流程:Python编写执行测试用例及定时自动发送最新测试报告邮件

Python 自动化测试框架unittest与pytest的区别

用python和unittest编写app自动化测试用例