某次压力测试的代码段

来源:互联网 发布:淘宝怎么同步付款 编辑:程序博客网 时间:2024/04/29 04:59
import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.testng.AbstractTestNGSpringContextTests;import org.springframework.test.context.transaction.TransactionConfiguration;import org.testng.annotations.BeforeTest;import org.testng.annotations.Test;import java.util.concurrent.ConcurrentLinkedQueue;import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import@ContextConfiguration(locations = {        "classpath:conf/applicationContext.xml",        "classpath:conf/spring/spring-db-source-test.xml",        "classpath*:/conf/spring/spring-dal.xml",        "classpath*:/conf/spring/spring-dal-shard.xml",})@TransactionConfiguration(defaultRollback = true)public class ReceiptSequenceNumberGenServiceImplTest extends AbstractTestNGSpringContextTests {    Logger logger = LoggerFactory.getLogger(getClass());    @Autowired    private ReceiptSequenceNumberGenService receiptSequenceNumberGenService;    @Autowired    private IExpressBillService expressBillService;    private static ConcurrentLinkedQueue<String> queue = new ConcurrentLinkedQueue<String>();    @BeforeTest    public void before() {    }    @Test    public void testSeqNumber() throws Exception {        final ExecutorService executorService = Executors.newFixedThreadPool(5);        final ExecutorService executorService2 = Executors.newFixedThreadPool(250);        CountDownLatch cd = new CountDownLatch(1);        Runnable t1 = new Runnable() {            @Override            public void run() {                while (true) {                    String seq = receiptSequenceNumberGenService.genSequenceNumberWithReceiptType("RKDD");//                    System.out.println("###" + seq);                    queue.add(seq);                    try {                        Thread.currentThread().sleep(100);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }            }        };        Runnable t2 = new Runnable() {            @Override            public void run() {                while (true) {                    String seq = receiptSequenceNumberGenService.genSequenceNumberWithReceiptType("RKDD");//                    System.out.println("###" + seq);                    queue.add(seq);                    try {                        Thread.currentThread().sleep(100);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }            }        };        Runnable t3 = new Runnable() {            @Override            public void run() {                while (true) {                    String seq = receiptSequenceNumberGenService.genSequenceNumberWithReceiptType("RKDD");//                    System.out.println("###" + seq);                    queue.add(seq);                    try {                        Thread.currentThread().sleep(100);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }            }        };        Runnable t4 = new Runnable() {            @Override            public void run() {                while (true) {                    String seq = receiptSequenceNumberGenService.genSequenceNumberWithReceiptType("RKDD");//                    System.out.println("###" + seq);                    queue.add(seq);                    try {                        Thread.currentThread().sleep(100);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }            }        };        Runnable t5 = new Runnable() {            @Override            public void run() {                while (true) {                    String seq = receiptSequenceNumberGenService.genSequenceNumberWithReceiptType("RKDD");//                    System.out.println("###" + seq);                    queue.add(seq);                    try {                        Thread.currentThread().sleep(100);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }            }        };        Runnable t6 = new Runnable() {            @Override            public void run() {                while (true) {                    String seq = receiptSequenceNumberGenService.genSequenceNumberWithReceiptType("RKDD");//                    System.out.println("###" + seq);                    queue.add(seq);                    try {                        Thread.currentThread().sleep(100);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }            }        };        Runnable t7 = new Runnable() {            @Override            public void run() {                while (true) {                    String seq = receiptSequenceNumberGenService.genSequenceNumberWithReceiptType("RKDD");//                    System.out.println("###" + seq);                    queue.add(seq);                    try {                        Thread.currentThread().sleep(100);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }            }        };        Runnable t8 = new Runnable() {            @Override            public void run() {                while (true) {                    String seq = receiptSequenceNumberGenService.genSequenceNumberWithReceiptType("RKDD");//                    System.out.println("###" + seq);                    queue.add(seq);                    try {                        Thread.currentThread().sleep(100);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }            }        };        executorService.execute(t1);        executorService.execute(t2);        executorService.execute(t3);        executorService.execute(t4);        executorService.execute(t5);        executorService.execute(t6);        executorService.execute(t7);        executorService.execute(t8);        executorService2.execute(new TestRunable(receiptSequenceNumberGenService));        cd.await();        executorService.shutdown();        executorService2.shutdown();    }    private static class TestRunable implements Runnable {        private ReceiptSequenceNumberGenService receiptSequenceNumberGenService;        public TestRunable(ReceiptSequenceNumberGenService receiptSequenceNumberGenService) {//            System.out.println(seq);            this.receiptSequenceNumberGenService = receiptSequenceNumberGenService;        }        @Override        public void run() {//            assert (receiptSequenceNumberGenService.updateDuplicateData(seq) == true);//            assert ();            while (true) {                String seq = queue.poll();                if (seq == null) {                    try {                        Thread.sleep(10);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                } else {                    assert (receiptSequenceNumberGenService.updateDuplicateData(seq));                }            }        }    }    @Test    public void testExpressBill() throws InterruptedException {        String seq = expressBillService.generateExpressBillNo();        System.out.println("seq:"+seq);        final ExecutorService executorService = Executors.newFixedThreadPool(5);        final ExecutorService executorService2 = Executors.newFixedThreadPool(250);        CountDownLatch cd = new CountDownLatch(1);        Runnable t1 = new Runnable() {            @Override            public void run() {                while (true) {                    String seq = expressBillService.generateExpressBillNo();//                    System.out.println("###" + seq);                    queue.add(seq);                    try {                        Thread.currentThread().sleep(5);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }            }        };        Runnable t2 = new Runnable() {            @Override            public void run() {                while (true) {                    String seq = expressBillService.generateExpressBillNo();//                    System.out.println("###" + seq);                    queue.add(seq);                    try {                        Thread.currentThread().sleep(5);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }            }        };        Runnable t3 = new Runnable() {            @Override            public void run() {                while (true) {                    String seq = expressBillService.generateExpressBillNo();//                    System.out.println("###" + seq);                    queue.add(seq);                    try {                        Thread.currentThread().sleep(5);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }            }        };        Runnable t4 = new Runnable() {            @Override            public void run() {                while (true) {                    String seq = expressBillService.generateExpressBillNo();//                    System.out.println("###" + seq);                    queue.add(seq);                    try {                        Thread.currentThread().sleep(5);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }            }        };        Runnable t5 = new Runnable() {            @Override            public void run() {                while (true) {                    String seq = expressBillService.generateExpressBillNo();//                    System.out.println("###" + seq);                    queue.add(seq);                    try {                        Thread.currentThread().sleep(5);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }            }        };        Runnable t6 = new Runnable() {            @Override            public void run() {                while (true) {                    String seq = expressBillService.generateExpressBillNo("REWQ");//                    System.out.println("###" + seq);                    queue.add(seq);                    try {                        Thread.currentThread().sleep(5);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }            }        };        Runnable t7 = new Runnable() {            @Override            public void run() {                while (true) {                    String seq = expressBillService.generateExpressBillNo();//                    System.out.println("###" + seq);                    queue.add(seq);                    try {                        Thread.currentThread().sleep(5);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }            }        };        Runnable t8 = new Runnable() {            @Override            public void run() {                while (true) {                    String seq = expressBillService.generateExpressBillNo();//                    System.out.println("###" + seq);                    queue.add(seq);                    try {                        Thread.currentThread().sleep(5);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }            }        };        executorService.execute(t1);        executorService.execute(t2);        executorService.execute(t3);        executorService.execute(t4);        executorService.execute(t5);        executorService.execute(t6);        executorService.execute(t7);        executorService.execute(t8);        executorService2.execute(new TestRunable2(receiptSequenceNumberGenService));        cd.await();        executorService.shutdown();        executorService2.shutdown();    }    private static class TestRunable2 implements Runnable {        private ReceiptSequenceNumberGenService receiptSequenceNumberGenService;        public TestRunable2(ReceiptSequenceNumberGenService receiptSequenceNumberGenService) {//            System.out.println(seq);            this.receiptSequenceNumberGenService = receiptSequenceNumberGenService;        }        @Override        public void run() {//            assert (receiptSequenceNumberGenService.updateDuplicateData(seq) == true);//            assert ();            while (true) {                String seq = queue.poll();                if (seq == null) {                    try {                        Thread.sleep(10);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                } else {                    assert (receiptSequenceNumberGenService.updateDuplicateData(seq) == true);                }            }        }    }    @Test    public void testGenID() throws Exception {        final ExecutorService executorService = Executors.newFixedThreadPool(5);        final ExecutorService executorService2 = Executors.newFixedThreadPool(250);        CountDownLatch cd = new CountDownLatch(1);        Runnable t1 = new Runnable() {            @Override            public void run() {                while (true) {                    Long seq = receiptSequenceNumberGenService.genReceiptPrimaryKey("RKDD");//                    System.out.println("###" + seq);                    queue.add(seq.toString());                    try {                        Thread.currentThread().sleep(100);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }            }        };        Runnable t2 = new Runnable() {            @Override            public void run() {                while (true) {                    Long seq = receiptSequenceNumberGenService.genReceiptPrimaryKey("RKDD");//                    System.out.println("###" + seq);                    queue.add(seq.toString());                    try {                        Thread.currentThread().sleep(100);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }            }        };        Runnable t3 = new Runnable() {            @Override            public void run() {                while (true) {                    Long seq = receiptSequenceNumberGenService.genReceiptPrimaryKey("RKDD");//                    System.out.println("###" + seq);                    queue.add(seq.toString());                    try {                        Thread.currentThread().sleep(100);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }            }        };        Runnable t4 = new Runnable() {            @Override            public void run() {                while (true) {                    Long seq = receiptSequenceNumberGenService.genReceiptPrimaryKey("RKDD");//                    System.out.println("###" + seq);                    queue.add(seq.toString());                    try {                        Thread.currentThread().sleep(100);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }            }        };        Runnable t5 = new Runnable() {            @Override            public void run() {                while (true) {                    Long seq = receiptSequenceNumberGenService.genReceiptPrimaryKey("RKDD");//                    System.out.println("###" + seq);                    queue.add(seq.toString());                    try {                        Thread.currentThread().sleep(100);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }            }        };        Runnable t6 = new Runnable() {            @Override            public void run() {                while (true) {                    Long seq = receiptSequenceNumberGenService.genReceiptPrimaryKey("RKDD");//                    System.out.println("###" + seq);                    queue.add(seq.toString());                    try {                        Thread.currentThread().sleep(100);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }            }        };        Runnable t7 = new Runnable() {            @Override            public void run() {                while (true) {                    Long seq = receiptSequenceNumberGenService.genReceiptPrimaryKey("RKDD");//                    System.out.println("###" + seq);                    queue.add(seq.toString());                    try {                        Thread.currentThread().sleep(100);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }            }        };        Runnable t8 = new Runnable() {            @Override            public void run() {                while (true) {                    Long seq = receiptSequenceNumberGenService.genReceiptPrimaryKey("RKDD");//                    System.out.println("###" + seq);                    queue.add(seq.toString());                    try {                        Thread.currentThread().sleep(100);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }            }        };        executorService.execute(t1);        executorService.execute(t2);        executorService.execute(t3);        executorService.execute(t4);        executorService.execute(t5);        executorService.execute(t6);        executorService.execute(t7);        executorService.execute(t8);        executorService2.execute(new TestRunable(receiptSequenceNumberGenService));        cd.await();        executorService.shutdown();        executorService2.shutdown();    }}
0 0
原创粉丝点击