| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发测试 -> 受苦之路-- 从0开始学python(17)--Excel结合测试用例使用&数据驱动 -> 正文阅读 |
|
[开发测试]受苦之路-- 从0开始学python(17)--Excel结合测试用例使用&数据驱动 |
一般自动化测试的流程 -准备测试数据(根据被测函数的参数) -调用被测函数,得到实际结果 -断言 ? 这样的方法可以完成测试,但是存在不少的缺点 -一个用例需要单独编写一个测试用例函数/方法,存在重复性代码(可以通过ddt解决) -测试的数据都放在用例的方法里,如果哪个数据需要改动,那么全部方法里的相关数据都要改 ?数据维护起来不方便(通过把数据存放到excel表格中管理) 所以,我们需要把数据单独放到excel表格中管理,之后有需要修改只需要在表格中修改便可 通过read_exce方法读取excel当中的数据,作为被测函数/方法的参数1.把测试用例的数据放到表格中 如果被测函数的参数较多,写入excel时可以把被测函数的参数用字典的方式填入excel的一个单元格中,调用数据时候方便查看 2.二次封装read_excel函数
之前我们封装的read_excel函数,得到的结果是一个列表嵌套元组 ? ? ?这样提取数据并不方便,比如只看到一个1,也很容易忘记是什么数据,所以需要在函数里继续对函数进行操作,转换成一个列表嵌套字典的形式,也方便我们查看数据和提取数据 ?小套路:测试自己封装好的函数/方法,减少测试时候发生的错误
?点击旁边的按钮可以运行上面的函数,但是在其他模块调用这个函数的时候不会执行这段代码,这种方法可以自行测试编写的代码是否能运行成功 错误操作当我们准备好测试数据之后.我们就需要把excel表格的数据导入测试用例函数
写for是为了减少重复编写测试用例方法,但是这样的操作存在两个问题 1.测试用例函数用for循环,unittest只发现了一个用例,实际上我们想要的是3个用例,不能在测试用例函数中用循环 2.代码有错误 username = params["username"] ?TypeError: string indices must be integers excel当中不存在字典,字典是python中的概念.如果单元格中有文本,读取出来基本上都是字符串 需要把字符串转换字典 eval() 通过eval()函数转换了数据类型后,我们就可以用代码获取字典里的数据,但是目前只解决了测试数据单独管理的问题,所以这时候需要用到参数化,数据驱动来实现多个测试用例函数 ? 通过参数化(ddt)完成数据到用例的结合参数化:用例函数参数. 一个测试函数当中会带参数,该参数往往就是测试用例数据,没有声明参数化,用例函数不能随便加入参数 数据驱动(data drive testing , ddt) 用法1: -在unittestreport导入ddt,list_data
-在类上面声明ddt,表示对这个类使用数据驱动
-在方法上面声明list_data(),参数输入要参数化的数据(读取excel得出的列表数据[{},{},{}])
-在测试用例方法传入参数,相当于遍历列表,每次取出列表的一个元素,也就是每一组测试用例的所有数据 -方法里获取被测函数需要的数据
? 用法2: -通过ddt导入ddt,data
-在类上面声明ddt
-在方法上面声明data(*测试数据[{},{},{}]) 参数要加*号
-在方法里获取数据
由此可见,对一个测试逻辑一致,数据不一致的用例通过参数化可以整合到一个自动化用例函数 用数据驱动和参数化后:用例函数只需要写一个,数据可以有多个甚至上万个,节省很多测试用例函数 -注意事项: excel当中不存在字典,字典是python中的概念.如果单元格中有文本,读取出来基本上都是字符串 参数化不能用for循环,因为for循环虽然可以执行多个数据,但是在自动化测试方法里,只会被当成一个用例 |
|
开发测试 最新文章 |
pytest系列——allure之生成测试报告(Wind |
某大厂软件测试岗一面笔试题+二面问答题面试 |
iperf 学习笔记 |
关于Python中使用selenium八大定位方法 |
【软件测试】为什么提升不了?8年测试总结再 |
软件测试复习 |
PHP笔记-Smarty模板引擎的使用 |
C++Test使用入门 |
【Java】单元测试 |
Net core 3.x 获取客户端地址 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/18 2:34:41- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |