zoukankan      html  css  js  c++  java
  • 自动化测试--初版

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

      废话不多说了,说说最近瞎搞的一个小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.测试结果详情页面

      

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

  • 相关阅读:
    HTML常用标签1
    mysql 多对多拆分成 一对多(学生,选修课,成绩)
    JDBC工具包使用
    类反射,用于JDBC
    JDBC基础语句使用
    关于线程等待、线程唤醒方法的引入
    synchronized站点抢票同步例题
    python-装饰器
    jwt, token, session和cookies
    miniapp之登录、授权和支付
  • 原文地址:https://www.cnblogs.com/fqfanqi/p/7263349.html
Copyright © 2011-2022 走看看