requests通过excel读取测试用

出品

51Testing软件测试网

前言

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

整体思路

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

2.通过Python读取Excel数据;

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

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

通过Excel编写用例

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

读取Excel

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

安装:

pipinstallxlrd

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

importxlrd#将excel进行实例化book=xlrd.open_workbook(E:\\web\\.xlsx)#通过下标方法读取sheet值sheet=book.sheet_by_index(0)#通过name值进行读取sheet#sheet=book.sheet_by_name(Sheet1)#获取列表的总数nrows=sheet.nrows#循环读取每行数据foriinrange(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中。

defRequests_result(item):#封装request请求,并读取数据response=requests.request(method=item[method],url=item[url],data=json.loads(item[body]))result=response.json()[reason]#这里返回实际结果是否和预期值一样returnresult==item[expect]

(左右滑动查看完整代码)

整体代码

pytest

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

importxlrdimportrequestsimportjsonimportpytestdefRead_Excel():#将excel进行实例化book=xlrd.open_workbook(E:\\web\\.xlsx)#通过下标方法读取sheet值sheet=book.sheet_by_index(0)#循环读取每行数据return[dict(zip(sheet.row_values(0),sheet.row_values(row)))forrowinrange(1,sheet.nrows)]classTest_01:defRequests_result(self,item):#封装请求response=requests.request(method=item[method],url=item[url],data=json.loads(item[body]))result=response.json()[reason]print(result)returnresult==item[expect]#通过参数化的方式进行导入excel的数据

pytest.mark.parametrize(item,Read_Excel())deftest_01(self,item):response_result=self.Requests_result(item)#断言请求返回的结果是否为Trueassertresponse_result==Trueif__name__==__main__:pytest.main([-vs])

(左右滑动查看完整代码)

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

unittest

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

importxlrdimportrequestsimportjsonimportunittestimportddtdefRead_Excel():#将excel进行实例化book=xlrd.open_workbook(E:\\web\\.xlsx)#通过下标方法读取sheet值sheet=book.sheet_by_index(0)#循环读取每行数据return[dict(zip(sheet.row_values(0),sheet.row_values(row)))forrowinrange(1,sheet.nrows)]

ddt.ddtclassTest_01(unittest.TestCase):defRequests_result(self,item):response=requests.request(method=item[method],url=item[url],data=json.loads(item[body]))result=response.json()[reason]returnresult#通过ddt进行读取数据

ddt.data(*Read_Excel())deftest_01(self,data):response_result=self.Requests_result(data)self.assertTrue(response_result)if__name__==__main__:unittest.main()

(左右滑动查看完整代码)

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

总结

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

End推荐阅读

点击阅读?两种常用Selenium测试框架的对比

点击阅读?Selenium常用函数总结

点击阅读?Python+Selenium,实现06模拟登录

点击阅读?Python+Selenium,实现贴吧自动发帖

点击阅读?Selenium破解滑动验证码

戳“阅读原文”一起来充电吧!预览时标签不可点收录于话题#个上一篇下一篇



转载请注明地址:http://www.sanbaicaoasb.com/sczz/8354.html
  • 上一篇文章:
  • 下一篇文章:
  • 热点文章

    • 没有热点文章

    推荐文章

    • 没有推荐文章