后台接口,动态生成测试用例名称,测试用例请求数据

做自动化测试刚入门的时候,我们一般用Jemter配置请求url/port,请求方式,然后编写一条条case, 将对应的case中创建符合的请求body_sample

一般的后台接口,需要考虑的无非是如下:

正确的请求,验证数据库中对应的数据被创建/更新,验证Response中返回码匹配

异常的请求,对应下面的图

必传字段,一一验证,
请求传入的必传字段1未传
请求传入的必传字段2未传
...

必传字段传空,一一验证,
请求传入的必传字段1传空,验证返回xxx
请求传入的必传字段2传空,验证返回xxx

请求传入的字符串超过最大长度限制,
比如name字段最大允许20个长度,请求传入的name是21个中文字符,验证返回xxx
考虑英文模式,需要接口说明文档先澄清中英文长度是否一致,因为比如sqlserver数据库中,varchar()和nvarchar()对中英文区别
...

请求传入的方式为get,不是规定的post,验证返回xxx
请求传入的请求体是json格式

 

========================================================

有没有遇到过以下一些变更
比如请求中的必传字段,忽然又增加了一个,
比如请求中的入参的名称,从telephone更改成了mobile

那请求体如果本身字段已经很多了,那这时候要逐个更改测试用例中的请求体,是不是特别费事儿
而开发只需要将POJO中的实体,增加一个属性,用对象来进行接收即可,
只需要话费几分钟的时间,
而测试将测试数据逐个修改,既耗费时间,又不学习新技能,这样的蠢活儿做多了,自己都快怀疑人生。

那我们能够动态地生成测试用例和测试数据吗?

只要多动脑,就可以。基于上面的想法,我就开发了以下的测试平台,可以通过输入接口的入参和入参的类型,动态生成测试用例名称和测试用例的数据。目前是json格式的body。 

https://www.88bugs.com/bug/login

如下注册接口,需要6个入参,其中5个入参是必传参数。

我只需要在平台中,填写入参名称,入参Sample,入参最大长度,就可以让平台替我们生成测试用例。

依次点击页面上的button,生成对应类型的测试用例

然后点击下载的button,将自己的测试用例下载下来

有了测试用例和测试数据,想进行运行,就很方便了,你可以用Jmeter运行,可以用java+httpclient,可以用python+requests等等

当然,我这边做的还不全,可以继续新增mobile应该有的格式,比如1打头且必须长度11位且全是数字,比如邮箱需要含有@和.等,将这些常用的检验封装成方法,以后直接拿来调用

如果,考虑到请求体中通常会有加密字段,根据各种规则加密,可以在写一些方法,若干个字段通过某种方式加密等等

目前只是个demo,需要更多的时间,和api 接口的特征,再来进行开发

原文地址:https://www.cnblogs.com/qianjinyan/p/11100874.html

时间: 2024-11-10 21:28:42

后台接口,动态生成测试用例名称,测试用例请求数据的相关文章

JS实现动态生成表格并提交表格数据向后端 表格中数据转为json

原文地址 需求:在web页面上动态的生成表格,并可以对表格中的数据进行编辑,然后把表格中的数据提交至后端服务器保存. 首先动态生成表格. 1.首先我们需要导入JS库文件.jQuery 2.然后在页面div中事先创建一个空白表格,可以根据需求而定,我这里是一个带表头的表格 <table border="0" style="text-align: center;" width="100%" id="myTable">

Java服务器对外提供接口以及Android端向服务器请求数据

讲解下java服务器是如何对移动终端提供接口的,以什么数据格式提供出去,移动端又是怎么请求服务器,接收以及解析返回数据的. 服务端:还是在原先S2SH框架的项目上(搭建SSH详细步骤及其相关说明),加入Servlet来做对终端提供接口的事情. Android端:用了一个网络访问框架okHttp,向服务器请求数据. 服务端: servlet接收移动端的get.post请求,进行相应逻辑处理后将要返回的数据封装成json格式写出去. 对数据库的操作传统的Servlet是用jdbc,但是操作过于繁琐,

Extjs 动态生成表格

Extjs 动态生成表格 在web显示数据时,会遇到grid的列数和行数不确定的这种情况.如何来根据数据动态的创建表格呢?Extjs 的json data给我们带来了一个很好的比较简单的方法.  要创建一个grid需要确定它的列数,再根据数据的数量就可以确定行数了.  看到有人用过一种方法就是讲列的属性和数据一起放在json data里去,这样可以达到效果,但是不难发现,这样的话,就很难进行分页或者更新表格里的数据.  其实我们可以结合extjs官网上的那种固定列数的访问方法来动态生成表格.  

vue动态生成表单组件vue-generate-form

项目地址 简介 Vue动态生成表单组件 可以根据数据配置表单 使用的UI库是iView 在Vue里 一般要用到什么组件或数据 都得提前声明 所以要根据数据来生成表单 只能使用Vue的render函数 要做这一个组件 其实并不难 看一下Vue官方示例 再找个UI组件库 差不多就能写出来 如果对项目有兴趣 可以fork或克隆项目 自行研究 有问题或BUG欢迎提issues 文档 在线DEMO 表单组件 Input 输入框 Button 按钮 Radio 单选框 Checkbox 多选框 Icon 图

在JSP中动态生成随机验证码,登录时后台校验验证码,以及如何避免同一个验证码被重复提交爆破密码

只需几步就可以生成动态随机的验证码,最终效果如下图: 一 前台显示页面login.jsp 其中验证码显示的是一张图片,链接指向的是生成验证码的servlet,同时点击图片后触发changeImg()这个js函数,使其动态生成一个新的验证码,这个函数中的参数t=Math.random()并不会参与验证码的生成,它的作用仅仅只是表示每次提交的并不是同一个请求,需要单独处理,完整的login.jsp代码如下: <%@ page language="java" contentType=&

构建施耐德楼控系统数据库后台服务器示例工程五(JAVA动态生成类)

在做数据库简易工具的过程中遇到了这么一个问题,即程序部署在tomcat下启动运行后,我们无法事先定义数据库中后续创建的表结构的Hibernate Bean对象,这样就需要我们在服务器运行起来后动态创建bean对象.cglib这个开源库即可解决我们的问题,动态创建JAVA对象. 1.cglib开源库简介 CGLIB(Code Generation Library)是一个开源项目,是一个强大的,高性能,高质量的Code生成类库,它可以在运行期扩展Java类与实现Java接口. 反编译后CGLIB结构

通过js动态生成文本框,怎么把文本框中的值传到java后台?

通过js动态生成文本框,怎么把文本框中的值传到java后台? 1 var lengths; 2 function insertrow2() //增加的一行方法2 3 { 4 newRow=document.all.yltable.insertRow(-1); 5 lengths = document.all.yltable.rows.length; 6 7 newcell=newRow.insertCell() ; 8 newRow.bgColor='#FFFFFF'; 9 newcell.al

Swagger结合mustache模板生成后台接口代码、以及前后台建模代码

之前项目中使用的的thrift来建模,维护前后台模型以及rest接口,前台使用的是angular2: 但是使用thrift只能生成建模,后台的rest接口的Controller文件还是需要手动去写,一旦接口改动就会涉及到很多方面. 由此准备使用Swagger和mustache模板来做一个maven插件直接生成前台ts文件和后台java文件以及rest接口文件.只需要维护swagger的yaml文件. yaml文件: swagger: "2.0"info: description: &q

element-UI,根据后台数据、动态生成el-checkbox-group,点击提交获取绑定checked项以及实现显示默认checked项

<template> <div id="Demo"> <el-form ref="form" label-width="100px"> <el-form-item label="设备名称"> <div class="check-group" v-for="(item, index) in equipments" :key="