自动化测试--初版

  当你已经快要习惯,习惯忙忙碌碌的工作,忽然一天的清闲,顿时又会让自己惊慌失措,突然不知道自己该干嘛了,这就是我生活轨迹上偶尔的笑话。

  废话不多说了,说说最近瞎搞的一个小web版接口测试网站。

  一、用到的所谓的框架(框架,听起来好高大上,其实是高大上,我得理解就是jar包的引用及相关配置文件(原谅我的拙见))

    1.spring

    2.springMVC

    3.Mybatis

    三者的整合:就是jar包的引入,配置文件的配置。

    具体请参考:http://www.cnblogs.com/fqfanqi/p/7154075.html

    spring一大优点:使用注解,减少了对对象的new操作,具体请参考:http://www.cnblogs.com/fqfanqi/p/7153843.html

  二、前端框架是从网上down的一套页面,修改为jsp页面进行展示,下面就各页面做下简介

    1.接口配置页面:

      1)项目名称,

      2)接口名称(唯一,作为表索引,表的关联基本靠它--需改进为(项目名称+接口名称)作为唯一索引),

      3)请求头信息,

      4)请求IP(或域名),

      5)请求端口,

      6)请求方式(暂搞get和Post,后续加入hessian等)

      7)请求报文格式,

      8)请求参数,

      9)是否验签,验签是否有盐值

      10)参与验签的参数

      11)返回报文格式

      12)备注

      

 备注:当验签选择“否“时,盐值和参与验签参数两个input将被隐藏(当然在页面修改display即可展现,所以最好后端加一个判断);本页面以表单形式提交,表单对应一个JavaBean。

-- -----------------------------------------------------------------
-- Table structure for configure_info(建表)
-- -----------------------------------------------------------------
DROP TABLE IF EXISTS `configure_info`;
CREATE TABLE `configure_info` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`project_name` varchar(20) DEFAULT NULL,
`api_name` varchar(20) NOT NULL,
`request_method` varchar(10) NOT NULL,
`request_header` varchar(255) DEFAULT NULL,
`content_type` varchar(20) NOT NULL,
`request_ip` varchar(15) NOT NULL,
`request_port` varchar(5) NOT NULL,
`request_parameters` varchar(255) DEFAULT NULL,
`is_sign` char(2) NOT NULL DEFAULT '否',
`salt` varchar(20) DEFAULT NULL,
`remarks` varchar(255) DEFAULT NULL,
`md_parameters` varchar(255) DEFAULT NULL,
`response_type` varchar(10) NOT NULL,
`create_time` varchar(30) NOT NULL,
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `api_name_index` (`api_name`)
) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8;

  2.接口查询页面

  

  接口查询页面只展示了:项目名称、接口名称、参数;可以根据项目名称和接口名称查询;分页采用软分页,每页最多展示5条数据。

  点击【修改】,页面跳转至接口配置页面。在接口配置页面点击【提交】,会更新该条数据。【提交】走的后台逻辑是:如果该条数据不存在就插入,如果存在就更新。

  点击【删除】,即数据中删除该条数据,页面隐藏该条数据,采用的AJax操作。

  点击【参数配置】,进入参数配置页面,两种页面展示。

  3.参数配置页面

    表设计: 

-- -------------------------------------------------------------
-- Table structure for parameter_info
-- --------------------------------------------------------------
DROP TABLE IF EXISTS `parameter_info`;
CREATE TABLE `parameter_info` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`api_name` varchar(20) NOT NULL,
`parameter_name` varchar(20) NOT NULL,
`is_must` varchar(2) NOT NULL,
`parameter_type` varchar(10) NOT NULL,
`parameter_length` varchar(10) DEFAULT NULL,
`parameter_max` varchar(10) DEFAULT NULL,
`parameter_min` varchar(10) DEFAULT NULL,
`character_constraint` varchar(20) DEFAULT NULL,
`create_time` varchar(30) NOT NULL,
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `api_name_index` (`api_name`,`parameter_name`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=47 DEFAULT CHARSET=utf8;

    3.1未配置或配置了部分参数

    

    页面配置好某参数的约束条件后,点击【添加】,按钮变成【修改】,表中会插入一条数据,前端提示添加成功,采用AJax传输数据。

    点击【删除】,接口配置信息表中删除该参数,验签参数中删除该参数(如果有),参数信息表中删除所有该接口参数配置信息(已知的bug)。

    点击【添加用例数据】,跳转到用例数据配置页面。

    3.2参数都已配置

    

    点击【修改】,会更新该条数据;

    点击【删除】,接口配置信息表中删除该参数,验签参数中删除该参数(如果有),参数信息表中删除所有该接口参数配置信息(已知的bug)。

    点击【添加用例数据】,跳转到用例数据配置页面。

    点击【创建用例表】,会创建一张用例数据表,表名为接口名+“_table”,通用字段为id,data_desc,update_time。

 1     @RequestMapping("createTable")
 2     @ResponseBody
 3     public String createTable(@RequestParam("apiName") String apiName) {
 4         List<ParametersConfigure> listPC = parametersConfigureService.getAllParametersByApiName(apiName);
 5         String strP = "";
 6         for(int i=0;i<listPC.size();i++){
 7             strP = strP + listPC.get(i).getParameterName() + " " + "varchar(50),";
 8         }
 9         String cTable = "create table "+apiName+"_table "+"("+
10         "id int(10) NOT NULL AUTO_INCREMENT,"
11         + "name_table " + "varchar(20),"
12         + "api_name " + "varchar(20),"
13         + "data_desc " + "varchar(20),"
14         + strP
15         + "update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,"
16         + "PRIMARY KEY (id),"
17         +  "KEY api_name_index (api_name)"
18         + ") ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 "
19         ;
20         System.out.println(cTable);
21         logger.info(cTable);
22         DataBaseOperate.createtable(cTable,apiName);
23         return "Create Tabl Success !";
24     }

  4.测试数据配置页面

  

  点击【提交】后,数据插入表中(先创建用例表),页面跳转测试用例数据查询页面。

  5.测试用例数据查询页面

  

  该页面可以根据用例描述进行筛选查询;点击【修改】,回到用例数据配置页面,因为传递的是该条所有数据,会将id,table_name,update_time也传过去,用例数据配置页面对这些字段进行隐藏(id在提交更新该条数据时需要用到,所以必须传递)。

  6.测试结果详情页面

  

----------------------------很多可以完善---------------------------------

原文地址:https://www.cnblogs.com/fqfanqi/p/7263349.html