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次,但是事实非如此,见下图:
这里写图片描述

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

相关文章推荐

Tuscany运行时两种方式

Tuscany运行时两种方式

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

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

暂停

thinking in c++看到第5章了。该看第五章了。 从第五章开始,重点介绍类的构造,初始化,函数重载,继承性,多态性等。 这几天其实一直不想改文章,不想看文章,不想读专业书。现在开始看了,暂时...

java测试并发类

/** * ConTest.java * 版权所有(C) 2012 * 创建:cuiran 2012-07-12 10:12:14 */ package com.wpndemo.test; ...
  • cuiran
  • cuiran
  • 2012-07-12 15:43
  • 8215

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

import java.io.BufferedReader;   import java.io.File;   import java.io.FileInputStream;   import ...

使用Session机制一些常见的问题

1、session在何时被创建 一个常见的误解是以为session在有客户端访问时就被创建,然而事实是直到某server端程序调用 HttpServletRequest.getSession(true...

简单java程序测试并发数

package test; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; ...

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

import java.io.BufferedReader;   import java.io.File;   import java.io.FileInputStream;   import ...

如何测试一个网站的性能(并发数)?

JMeter网站并发性测试 Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用...

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

使用线程池,实现多个用户并发访问的操作 import java.io.BufferedReader; import java.io.IOException; import java.io.InputS...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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