java的并发测试

原创 2016年05月30日 20:34:49

1. 什么是并发测试

通过代码的编写和工具的利用模拟多线程(多用户)来执行某一个业务操作。来确保业务在多线程的环境下业务(或者说数据的)的正确性

2. 为什么做并发测试

我们常常听到线上环境在高并发的情况下。出现用户的账户余额不对,一个手机号注册了两个账户这类情况。所以我们有必要模拟大量用户的并发测试

3. 如何做并发测试

我在这儿是使用的是testng的方法。见如下实例(在多线程的环境下,非线程安全)

package com.one;

import java.util.HashMap;

import org.testng.annotations.AfterTest;
import org.testng.annotations.Test;

public class UnsafeCountingFactorizer {

    private long count=0;

    public long getCount(){
        return count;
    }

    @Test(invocationCount=20000,threadPoolSize=1000) 
    public void service() {
        HashMap<String, String> hashMap  = new HashMap<String,String>();
        hashMap.put("1", "1");
        hashMap.put("1", "1");
        hashMap.put("1", "1");
        hashMap.put("1", "1");


        ++count;


        HashMap<String, String> hashMap2  = new HashMap<String,String>();
        hashMap2.put("1", "1");
        hashMap2.put("1", "1");
        hashMap2.put("1", "1");


    }

    @AfterTest
    public void endService(){
        System.out.println("count value{}:"+count);
    }   
}

参数讲解
invocationCount:注解的方法执行多少次,threadPoolSize:启动多少个线程去执行。两个参数合起来的含义是启动多少个线程一共执行多少次

结果
预期的结果是20000次,但是事实非如此,见下图:
这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。

简单java程序测试并发数

package test; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; ...
  • AlbertFly
  • AlbertFly
  • 2016年05月16日 18:40
  • 3763

java模拟并发请求测试方法是否线程安全

java模拟并发请求测试方法是否线程安全
  • u013905744
  • u013905744
  • 2017年06月19日 16:36
  • 1479

java高并发测试实例(精确到几百纳秒)

java多线程高并发的测试redis性能(url里用redis实现去重逻辑)
  • xiaoe3504xiaoe
  • xiaoe3504xiaoe
  • 2017年09月07日 15:56
  • 399

Java 模拟并发操作压力测试代码

import java.io.BufferedReader;     import java.io.File;     import java.io.FileInputStream;     impo...
  • LANGZI7758521
  • LANGZI7758521
  • 2016年09月19日 17:36
  • 867

Java模拟并发操作进行服务器压力测试

import java.io.BufferedReader;   import java.io.IOException;   import java.io.InputStreamReader;   i...
  • Android_Mrchen
  • Android_Mrchen
  • 2017年07月14日 16:55
  • 2300

白盒测试中如何实现真正意义上并发测试(Java)

在这个话题开始之前,首先我们来弄清楚为什么要做并发测试?一般并发测试,是指模拟并发访问,测试多用户并发访问同一个应用、模块、数据时是否产生隐藏的并发问题,如内存泄漏、线程锁、资源争用问题。站在性能测试...
  • hexieshangwang
  • hexieshangwang
  • 2015年08月04日 10:49
  • 415779

《java并发编程实战》+ 源码 高清完整PDF版

  • 2013年03月14日 14:40
  • 8.77MB
  • 下载

简单的并发测试以及线程监控

并发测试 ab测试工具 JMeter测试工具 Eclipse设置程序可用内存 jvisualvm监控线程
  • gfd54gd5f46
  • gfd54gd5f46
  • 2017年02月15日 00:57
  • 2286

【java】java线程并发测试模版

这里申请了1000个线程,并且执行1000次任务。当所有任务完成后,main退出。 public class Test { public static void mai...
  • yjqyyjw
  • yjqyyjw
  • 2016年04月13日 13:39
  • 575

java模拟并发操作进行压力测试

http://www.qqread.com/java/2010/01/c488170.html import java.io.BufferedReader; import java...
  • dac55300424
  • dac55300424
  • 2013年07月22日 10:04
  • 1545
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java的并发测试
举报原因:
原因补充:

(最多只允许输入30个字)