首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >自动化测试项目基础--视频讲解

自动化测试项目基础--视频讲解

作者头像
FunTester
发布2020-04-02 17:54:57
发布2020-04-02 17:54:57
39900
代码可运行
举报
文章被收录于专栏:FunTesterFunTester
运行总次数:0
代码可运行

相信一万行代码的理论!

今天开始分享如何写一个自动化测试项目。对于一个长期的自动化测试项目,我的思路如下:现有一个项目的基类,实现对获取请求对象和发送解析请求对象的封装,自定义用户信息(例如id,uid,password)以及验证信息,自定义headercookie处理方法,自定义通用验证方法和获取业务响应状态码方法,以及包括一些其他需要自定义的功能。然后每个业务的模块类继承于这个基类,就只专注于接口的参数和响应信息即可。

首先先分享基类需要实现的一个接口(IBase),接口里面包含了上诉所有的功能,以及使用场景和注意事项,项目的基类通过实现这些方法可以非常好地将通用的部分全部放在这个基类里面,使其他模块类专注自己的模块功能接口。

视频专题:

接口测试中业务验证


gitee地址:https://gitee.com/fanapi/tester

代码

代码语言:javascript
代码运行次数:0
运行
复制
package com.fun.base.interfaces;

import com.alibaba.fastjson.JSONObject;
import com.fun.base.bean.RequestInfo;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpRequestBase;

import java.io.File;

/**
 * 每个项目需要重写的方法
 */
public interface IBase {

    /**
     * 获取get请求对象
     *
     * @param url
     * @return
     */
    HttpGet getGet(String url);

    /**
     * 获取get请求对象
     *
     * @param url
     * @param arg
     * @return
     */
    HttpGet getGet(String url, JSONObject arg);

    /**
     * 获取post请求对象
     *
     * @param url
     * @return
     */
    HttpPost getPost(String url);

    /**
     * 获取post请求对象
     *
     * @param url
     * @param params
     * @return
     */
    HttpPost getPost(String url, JSONObject params);

    /**
     * 获取post请求对象
     *
     * @param url
     * @param params
     * @param file
     * @return
     */
    HttpPost getPost(String url, JSONObject params, File file);

    /**
     * 获取响应
     *
     * @param request
     * @return
     */
    JSONObject getResponse(HttpRequestBase request);

    /**
     * 获取响应
     *
     * @param url
     * @return
     */
    JSONObject getGetResponse(String url);

    /**
     * 获取响应
     *
     * @param url
     * @param args
     * @return
     */
    JSONObject getGetResponse(String url, JSONObject args);

    /**
     * 获取响应
     *
     * @param url
     * @return
     */
    JSONObject getPostResponse(String url);

    /**
     * 获取响应
     *
     * @param url
     * @param params
     * @return
     */
    JSONObject getPostResponse(String url, JSONObject params);

    /**
     * 获取响应
     *
     * @param url
     * @param params
     * @param file
     * @return
     */
    JSONObject getPostResponse(String url, JSONObject params, File file);

    /**
     * 校验响应正确性
     * <p>
     * 用于处理响应结果,一般校验json的必要层级和响应码
     * </p>
     *
     * @param response
     * @return
     */
    boolean isRight(JSONObject response);

    /**
     * 检查响应是否符合标准
     * <p>
     * 会在fanlibrary类使用,如果没有ibase对象,会默认返回test_error_code
     * requestinfo主要用于校验该请求是否需要校验,黑名单有配置black_host提供
     * </p>
     *
     * @param response    响应json
     * @param requestInfo 请求info
     * @return
     */
    int checkCode(JSONObject response, RequestInfo requestInfo);

    /**
     * 登录
     */
    void login();

    /**
     * 设置header
     */
    void setHeaders(HttpRequestBase request);

    /**
     * 处理响应结果
     *
     * @param response
     */
    void handleResponseHeader(JSONObject response);

    /**
     * 获取公共的登录参数
     *
     * @return
     */
    JSONObject getParams();

    /**
     * 初始化对象,从json数据中,一般指cookie
     * <p>
     * 主要用于new了新的对象之后,然后赋值的操作,场景是从另外一个服务的对象拷贝到现在的对象,区别于clone,因为可能还会涉及其他的验证,所以单独写出一个方法,极少用到
     * </p>
     */
    void init(JSONObject info);


    /**
     * 记录请求
     */
    void recordRequest();

    /**
     * 获取请求,用于并发
     *
     * @return
     */
    HttpRequestBase getRequest();


}


  • 郑重声明:文章首发于公众号“FunTester”,欢迎关注交流,禁止第三方(腾讯云除外)转载、发表。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FunTester 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 接口测试中业务验证
  • 代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档