前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >判定表case的自动化用例设计

判定表case的自动化用例设计

作者头像
用户5521279
发布2019-09-29 16:02:41
9600
发布2019-09-29 16:02:41
举报
文章被收录于专栏:搜狗测试搜狗测试

大家好,小编今天和大家分享一个自己编写的自动化测试工具,主要解决的问题是如何遍历测试用例中“判定表”方法设计出来的case。

列举一个需求: 有一个开关下发的网络接口,针对以下条件给用户下发音乐开关: 1、 手机厂商满足:xiaomi,oppo,vivo 2、 且Androidid尾号为:1、2、3、4、5、6 3、 且地区必须是北京,上海,广州 下发的音乐开关的key、value分别是“music”,“1”。

观察该需求,我选择采用判定表的方法来设计测试用例,详情如下:

通过上表进行用例设计。满足下发的条件一共有3*6*3=54条,如果每一类各设计一个反向条件,则总case数量为4*7*4=112条。

如果通过黑盒的方式全部遍历这112条case,时间人力消耗就太大了,考虑到该接口的测试需求较频繁,于是考虑用自动化的手段进行测试。

自动化工具的设计主要有以下三个步骤: 1、条件输入:全部case条件的录入; 2、测试执行:对所有条件全部遍历组case,进行测试验证; 3、结果输出:对测试结果进行校验、排版输出。

一、条件输入: 首先由于该接口使用频率较高,于是计划设计一个完整的工具,通过wxpython进行GUI的绘制(wxpython使用说明:https://www.yiibai.com/wxpython/wxpython_environment.html),做出来的界面如下:

条件框中可以多个条件填写,通过“;”隔开,使用GetValue()方法时通过split进行拆分; 引用刚刚的例子,待查询关键字:“music”,预期结果:“1”。

二、测试执行: 首先将所有正向、反向条件分别用数组接收,然后进行遍历组合,我在这里遇到了一个困难, 如果仅仅是例子中的3重条件,那么嵌套3次循环即可。但是以后的需求条件可能会有很多,每增加一组条件就要修改脚本增加一重循环,对脚本的易用性有很大影响,通过查询python库找到了一个更有效的方法:python的itertools模块,使用方法如下:

从图中可以看出,该模块循环可以将所有list进行全部组合的排列输出,获取到所有的条件后,将条件组合成对应case并作为body进行request上传,接收返回的内容准备输出结果。

三、结果输出: 收到返回后,进行实际结果和预期的判断,主要有两种case 1、正确路径:全部条件正确case,结果如果命中预期则返回True,否则False; 2、错误路径:如果有一个非下发case,结果如果仍命中预期则返回False,否则返回True。 将结果进行排版输出到excel中,大概效果如下:

本次案例属于接口测试,但工具的设计理念不仅仅适用接口验证,利用itertools的数组全组合能力实现判定表的所有条件遍历,在功能回归的多条件自动化测试上也可以使用,解放双手,并保证测试case覆盖率达到100%。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 搜狗测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档