java实现在性能测试中进行业务验证实例

 更新时间:2022年07月21日 15:41:27   作者:FunTester  
这篇文章主要为大家介绍了java实现在性能测试中进行业务验证实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

引言

在性能测试过程中,验证HTTP code和响应业务code码是比较基础的,但是在一些业务中,这些参数并不能保证接口正常响应了,很可能返回了错误信息,所以这个时候对接口进行业务验证就尤其重要。下面分享一个对某个资源进行业务验证的Demo。

改接口请求资源详情,其中有一个字段是表示该用户对于该资源的操作状态,踩赞类型:1-赞,2-踩,3-取消赞,4-取消踩。

改压测一个接口,但是需要两个接口的数据提供数据,一个是登录,一个是操作改资源的接口。

点赞和资源详情的方法

具体的项目结构之前讲过,主要解决了请求方式,身份验证的问题,这里不再细说登录以及如何将身份令牌传递给。下面分享一下点赞和资源详情的方法代码,两者分属两个模块未在一个类里面,我这里单独挑出来:

/**
     * 点赞和踩
     *
     * @param resId     资源id
     * @param operation 操作类型(踩赞类型:1-赞,2-踩,3-取消赞,4-取消踩)
     * @return
     */
    public JSONObject likeOrNot(int resId, int operation) {
        String url = FlowApi.LIKE_OR_NOT;
        JSONObject params = getParams();
        params.put("isCoursePackage", 0);//标识是否课程包 0-否 1-是
        params.put("operation", operation);
        params.put("resId", resId);
        params.put("resType", 5);//1-课件;2-题集;3-教学资料;4-课程包;5:题目
        JSONObject response = getPostResponse(url, params);
        output(response);
        return response;
    }
/**
     * 课程包详情
     *
     * @param resid 资源ID 1030167
     * @return
     */
    public JSONObject courseDetail(int resid) {
        String url = LauncherApi.COURSE_DETAIL;
        JSONObject params = getParams();
        params.put("id", resid);
        JSONObject response = getPostResponse(url, params);
//        output(response);
        return response;
    }

压测脚本

下面是压测脚本,是用Groovy写的,方便在服务器上调试,但是跟Java有些不同,如果用编译器的童鞋请注意编译器异常,有些找不着引用对象的时候需要手动,或者忽略这些异常:

public static void main(String[] args) {
        def argsUtil = new ArgsUtil(args)
        def thread = argsUtil.getIntOrdefault(0, 2)
        def times = argsUtil.getIntOrdefault(1, 2)
        def threads = []
        thread.times {
            threads << new ThreadLimitTimesCount<Integer>(it, times) {
                def resid = 1030167
                def operation = getRandomInt(4)
                def drive
                @Override
                public void before() {
                    super.before()
                    def base = new OkayBase(it)
                    def flow = new Flow(base)
                    flow.likeOrNot(this.resid, this.operation)
                    this.drive = new Launcher(base)
                    sleep(1000)
                }
                @Override
                protected void doing() throws Exception {
                    def response = this.drive.courseDetail(this.resid)
                    int anInt = response.getJSONObject("data").getInt("like_state");
                    if (anInt != 3) fail();
                }
                @Override
                protected void after() {
                }
            }
        }
        new Concurrent(threads).start()
        allOver();
    }

doing()方法中response的响应处理可能会抛出异常,fail()是一个封装的抛出通用运行异常的方法,用来标记响应失败,在框架中会捕捉doing()方法的异常,并记录统计线程运行过程的数据。有兴趣参考性能测试框架第二版

以上就是java实现在性能测试中进行业务验证实例的详细内容,更多关于java性能测试业务验证的资料请关注脚本之家其它相关文章!

相关文章

  • Java反射机制介绍

    Java反射机制介绍

    Java的反射机制是在运行状态中,对于任何一个类,都可以知道这个类的所有属性和方法,对于任何一个对象,都可以调用它所有的方法和属性,修改部分类型信息,这种动态获取信息以及动态调用对象方法的功能称为Java的反射机制
    2022-08-08
  • Spring中的@ComponentScan注解使用详解

    Spring中的@ComponentScan注解使用详解

    这篇文章主要介绍了Spring中的@ComponentScan注解使用详解,@ComponentScan 注解的作用就是根据指定的扫描路径,把路径中符合扫描规则的类装配到 Spring 容器中,需要的朋友可以参考下
    2024-01-01
  • Spring Task定时任务每天零点执行一次的操作

    Spring Task定时任务每天零点执行一次的操作

    这篇文章主要介绍了Spring Task定时任务每天零点执行一次的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • JDK SPI机制以及自定义SPI类加载问题

    JDK SPI机制以及自定义SPI类加载问题

    这篇文章主要介绍了JDK SPI机制以及自定义SPI类加载问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • java网络之基于UDP的聊天程序示例解析

    java网络之基于UDP的聊天程序示例解析

    这篇文章主要介绍了java网络之基于UDP的聊天程序示例解析,文中通过步骤及示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Java数据类型分类与基本数据类型转换

    Java数据类型分类与基本数据类型转换

    这篇文章主要介绍了Java数据类型分类与基本数据类型转换,Java的数据类型主要分为两类,基本数据类型、引用数据类型,下文详细介绍,感兴趣的朋友可以参考一下
    2022-07-07
  • Spring Data JPA中的动态查询实例

    Spring Data JPA中的动态查询实例

    本篇文章主要介绍了详解Spring Data JPA中的动态查询。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • 谈谈为JAXB和response设置编码,解决wechat4j中文乱码的问题

    谈谈为JAXB和response设置编码,解决wechat4j中文乱码的问题

    中文乱码是每个程序员都会遇到的问题,本篇文章主要介绍了谈谈为JAXB和response设置编码,解决wechat4j中文乱码的问题,具有一定的参考价值,有兴趣的可以了解一下。
    2016-12-12
  • IDEA中Maven依赖下载失败的完美解决方案

    IDEA中Maven依赖下载失败的完美解决方案

    使用IDEA进行Maven项目开发时,时不时会遇到pom.xml报错的情况,其中很大概率是因为Maven依赖的jar包下载失败,找来找去也没有找到是什么问题,困扰了很多程序猿,这里给出IDEA中Maven依赖下载失败解决方案,给大家参考,实测有用
    2020-04-04
  • Spring Boot使用FastJson解析JSON数据的方法

    Spring Boot使用FastJson解析JSON数据的方法

    本篇文章主要介绍了Spring Boot使用FastJson解析JSON数据的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02

最新评论