测试平台系列(41) 编写数据构造器功能(上)

大家好,我是米洛,一个测试开发博主,world很大, 你应该去看看!

欢迎大家关注我的龚仲耗: 测试开发坑货

这篇文章阅读需要一定的耐心,如果看的不爽可以点个赞提醒一下博主。

image

回顾

上篇已经找到了一个可测的项目,但是遇到了需要登录的问题。正常来说,我们如果写代码的话,肯定很方便,在setUp这类方法里咔咔咔登录一下,存储对应的JSESSIONID,然后测试函数就能够用JSESSIONID畅通无阻访问项目了。

找个例子

下面我们来看一个简单的例子:

由于这个项目很老了,很多图片过期了都

如图所示,我想测试一个获取用户列表的接口,对应这个页面。因为我们暂时没有整理出对应的接口文档,只能自己看代码或者抓包去了解这个请求。

image

好在这个请求比较简单,是个GET,并且接受一个nickname字段。根据经验,这个接口可以根据对应的用户名查询对应的用户信息。

可以看到这个接口是需要登录的

平台化思路

那么平台化的话,应该怎么做呢?我们刚才梳理了具体的过程。

  1. 设计用例
  2. 调用login接口,获取到凭据(token/cookie等)
  3. 根据凭据请求获取用户列表接口
  4. 根据对应的用例制造不同的请求参数(nickname)
  5. 根据用例编写对应的断言信息

熟悉Python+excel的朋友,可能会在excel添加了好多条测试数据和期望结果了,其实平台化也是类似。

我们只需要关心一个用例的真正执行过程:

  1. 登录获取凭据
  2. 通过凭据请求接口

明白这点的话,我们就开始改造我们的Executor类了。所以我们要做的就是先执行登录用例,再执行测试用例。换句话说,登录用例是该测试用例的前置条件(setUp/初始化数据操作),我这里给他取了个名儿: 数据构造器,因为我们常说的接口之间的依赖,常常是数据引起,如果登录后能拿到凭据,那么我们对登录的依赖就被解决了。

我们执行用例的时候,是这样的顺序,如果用例有数据构造器,那么我们先执行数据构造器方法,目的就是把依赖数据拿到。

Constructor表

表设计

id,deleted_at,created_at,create_user,update_user这些字段都是老生常谈了,不赘述了。

  • type

    我们的数据可能来自一次http请求,redis操作,sql查询,其它测试用例等等。我暂时定了3个最常见的:

    0: testcase 1: sql 2: redis

    其他的我们后续遇到再补充,肯定会有的,比如py脚本等等

  • name:构造器的描述

  • enable: 是否开启

    比如某天你暂时不需要进行这个操作了,你可以临时关闭,后续可以打开。

  • public: 是否公开,不公开就只能你自己舒服别人不能舒服

  • case_id: 这个构造器所属的case_id

  • value: 构造器的返回值

    这个大家能理解吧,我构造了数据,是为了让自己再取出来。比如我set woody="帅哥",后续我是要用这个帅哥的,那么此时的woody就是value了,或者叫return_value更方便理解。

  • constructor_json: 构造json

    由于我们不同的数据,对应不同的数据格式。举个例子,如果我是个sql类型,我可能需要jdbcUrl(数据库连接地址),sql等关键信息,其实这种情况我们用mongo当数据库会更舒服。只不过为了降低系统复杂度,尽量少引入新的组件,能忍就忍了。

定义造数器请求参数

基本上没有什么大的区别

编写新增数据构造器功能

修改和删除的暂时还没完成

页面操作

  1. 为对应的用例添加构造器
image
  1. 选择测试用例类型


    image
提前准备好了一个正常登录的用例

最后的效果就是,查询所有用户列表用例拥有了一个用户正常登录的数据构造器。

这期的内容就到这里了,太多了我自己都消化不良。

在线演示地址: https://pity.fun/

前端代码仓库: https://github.com/wuranxu/pityWeb

后端代码仓库: https://github.com/wuranxu/pity

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 222,183评论 6 516
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,850评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,766评论 0 361
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,854评论 1 299
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,871评论 6 398
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,457评论 1 311
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,999评论 3 422
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,914评论 0 277
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,465评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,543评论 3 342
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,675评论 1 353
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,354评论 5 351
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,029评论 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,514评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,616评论 1 274
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 49,091评论 3 378
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,685评论 2 360

推荐阅读更多精彩内容