当前位置:首页 > 生活百科

python自动化测试用例编写(教你编写自动化测试用例)

栏目:生活百科日期:2025-04-14浏览: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:web123.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:web123.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:web123.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自动化测试用例编写(教你编写自动化测试用例)” 的相关文章

中国域名有哪些(点手机域名注册费用)

国际域名、国内域名两者在使用上没有任何本质区别,都是互联网上的具有唯一性的企业标识。只是在最终管理机构上,国际域名由美国商业部授权的ICANN负责管理,由ICA...

excel设置打开密码怎么设置(excel设置密码解除方式)

有个粉丝跟我说,有个Excel表设置了密码,时间长了忘记密码,里面的资料比较重要,因没有密码无法复制,更新里面的内容,有没有什么方法破解?我只能说,辛亏这位粉丝...

中国被黑站点统计(国内被黑站点有哪些)

在一周前,美国最大燃油管道商“科洛尼尔”管道运输公司被勒索软件“黑暗面”入侵。这个黑客组织通过加密手段锁住该公司计算机系统并盗取机密文件,以此来勒索赎金。该公司...

夫妻创业做什么好,盘点夫妻创业的好处和坏处

夫妻店从不罕见。2012年一个调查显示,全世界的公司里,80%会雇家庭成员,约四分之一会雇配偶。美国北达科塔州立大学教授格伦·马斯克(GlennMuske)的研...

8万请千万主播带货只卖出6瓶护肤品(价值共计800元)

上海宝山法院23日发布了一则案例通报,在电商时代颇具代表性。随着电商经济的不断升温,许多商家开始拥抱无接触式的直播带货。尤其是在各路明星纷纷入场下,直播带货也越...

做logo用什么软件好(自己做logo的软件)

再给大家补充一个LOGO生成器:shapefactory.co,他们家的产品都超好用,我用得最多的就是双色生成器Duotone!??Canvacanva.com...

insert into语法错误有什么原因(sql数据库insert用法)

场景:数据库存在角色表、菜单表、角色菜单关系表,现需新增菜单,并维护角色菜单关系,因原来角色已有的菜单很多,如果通过功能操作,很费时间,想从数据库中直接维护菜单...

js获取对象的值的方法(js对象取值的方法)

原生Math.max方法Math.max方法不能接收数组,可以使用ES6的&…将数组打散constarr=&[111,12,111,34,2...

一个虚拟主机可以放几个网站,虚拟主机搭建多个网站方法

虚拟主机可以搭建多少网站?有什么优缺点?虽然现在很多虚拟主机支持一个空间建多个站点,这在资源利用方面,大大提升了利用率,节省资源成本。但从另外方面看,这存在着一...

win7网络适配器不见了怎么恢复(bios网卡被禁用恢复方法

Win7系统电脑无线网络图标不见了怎么办?电脑右下角WiFi图标消失该如何恢复?下面给大家介绍恢复无线网络图标的方法。方法一:1、点击开始菜单,选择控制面板;2...