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

简介: 编写数据构造器功能(上)

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

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

1.jpg

image

回顾


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

找个例子


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

2.jpg

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

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

3.jpg

image

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

4.jpg

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

平台化思路


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

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

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

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

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

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

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

Constructor表


5.jpg

表设计

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当数据库会更舒服。只不过为了降低系统复杂度,尽量少引入新的组件,能忍就忍了。

定义造数器请求参数


6.jpg

基本上没有什么大的区别

编写新增数据构造器功能


7.jpg

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

页面操作


  1. 为对应的用例添加构造器

8.jpg

image

  1. 选择测试用例类型

    9.jpg


image


10.jpg

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

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

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




相关文章
|
28天前
|
人工智能 搜索推荐 Serverless
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
66 7
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
|
2月前
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
22 1
|
2月前
|
Java 关系型数据库 数据库连接
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
32 1
|
2月前
|
Java
【Java每日一题】— —第二十一题:编程把现实生活的手机事物映射成一个标准类Phone,并定义一个测试类PhoneDemo测试Phone类的功能
【Java每日一题】— —第二十一题:编程把现实生活的手机事物映射成一个标准类Phone,并定义一个测试类PhoneDemo测试Phone类的功能
37 0
|
3天前
|
人工智能 测试技术
测试数据不再难,人工智能批量生成给你用!
本文介绍了如何利用ChatGPT生成测试数据。测试数据是验证功能和触发异常场景的关键,设计时需全面考虑等价类、边界值和正交法。实践中,先明确数据类型、格式和需求,然后向ChatGPT提供相关信息。例如,对于只能输入中国手机号的输入框,初始提示可能只包含正常手机号,但应进一步补充异常场景,如非数字、长度错误、非中国号码、特殊字符、空输入等。此外,可通过指定yaml格式来满足代码使用需求。总结来说,生成测试数据需清晰定义需求,拆分任务,并系统测试各种变化。
11 2
|
8天前
|
人工智能 监控 数据处理
【AI大模型应用开发】【LangSmith: 生产级AI应用维护平台】1. 快速上手数据集与测试评估过程
【AI大模型应用开发】【LangSmith: 生产级AI应用维护平台】1. 快速上手数据集与测试评估过程
30 0
|
14天前
|
数据可视化
结构方程模型 SEM 多元回归和模型诊断分析学生测试成绩数据与可视化
结构方程模型 SEM 多元回归和模型诊断分析学生测试成绩数据与可视化
|
24天前
|
人工智能 分布式计算 Kubernetes
人工智能,应该如何测试?(三)数据构造与性能测试篇
本文探讨了人工智能场景中的性能测试,区别于传统互联网测试,其复杂性更高。主要关注点包括两类AI产品——业务类和平台类,后者涉及AI全生命周期,测试难度更大。测试重点是模型训练的性能,特别是数据模拟。需要构造大量结构化数据,如不同规模、分布、分片和特征规模的数据,以评估算法效率。此外,还涉及模拟设备规模(如视频流)和节点规模(边缘计算),以测试在大规模负载下的系统性能。文中提到了使用工具如Spark、ffmpeg、流媒体服务器和Kubernetes(K8S)的扩展项目,如Kubemark,来模拟大规模环境。最后,文章介绍了使用Golang进行异步IO操作以构建海量小文件,优化IO性能。
48 0
|
2月前
|
算法 测试技术 uml
【软件设计师备考 专题 】面向对象实现方法:从程序设计语言的选择到测试数据的准备
【软件设计师备考 专题 】面向对象实现方法:从程序设计语言的选择到测试数据的准备
49 0
|
2月前
|
缓存 运维 Serverless
应用研发平台EMAS产品常见问题之测试检查更新没有反应如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。

热门文章

最新文章