如何在python(Python自动化测试用例编写方法:requests通过excel读取测试用例)python初学 / python在自动化测试中的应用...

wufei123 发布于 2024-05-25 阅读(14)

前言编写正常的测试用例,一般都是通过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 xlrdimport requests

import jsonimport pytestdef 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 == Trueif __name__ == __main__: pytest.main([-vs])通过执行发现,我们的requests已经通过excel来完成了测试读取测试用例。

并通过单元测试-pytest完成了判断是否通过

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

import jsonimport unittestimport ddtdef 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.ddtclass 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的方法从而实现了接口自动化的类似操作,当然如何运用到公司项目中,这个要看根据公司的项目来做了请关注+私信回复:“测试”就可以免费拿到软件测试学习资料,同时进入群学习交流~~。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

河南中青旅行社综合资讯 奇遇综合资讯 盛世蓟州综合资讯 综合资讯 游戏百科综合资讯 新闻8837