zoukankan      html  css  js  c++  java
  • 如何在IDEA中使用jcstress进行并发压力测试

    如何在IDEA中使用jcstress进行并发压力测试

    在研究高并发的时候,偶然发现这个,还是有点好用的。

    • 测试类

      /**
       * @author WGR
       * @create 2020/12/22 -- 20:48
       */
      @JCStressTest
      @Outcome(id = {"1","4"}, expect = Expect.ACCEPTABLE,desc = "ok")
      @Outcome(id = "0",expect = Expect.ACCEPTABLE_INTERESTING,desc = "danger")
      @State
      public class Test03Orderliness {
          int num = 0;
          boolean ready = false;
          // 线程一执行的代码
          @Actor
          public void actor1(I_Result r) {
              if(ready) {
                  r.r1 = num + num;
              } else {
                  r.r1 = 1;
              }
          }
          @Actor
          public void actor2(I_Result r) {
              num = 2;
              ready = true;
          }
      }
      
      
    • pom.xml

       <properties>
              <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
              <jcstress.version>0.5</jcstress.version>
              <javac.target>1.8</javac.target>
              <uberjar.name>jcstress</uberjar.name>
          </properties>
      
          <dependencies>
              <!-- https://mvnrepository.com/artifact/org.openjdk.jcstress/jcstress-core -->
              <dependency>
                  <groupId>org.openjdk.jcstress</groupId>
                  <artifactId>jcstress-core</artifactId>
                  <version>0.3</version>
              </dependency>
          </dependencies>
      
          <build>
              <plugins>
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-compiler-plugin</artifactId>
                      <version>3.1</version>
                      <configuration>
                          <compilerVersion>${javac.target}</compilerVersion>
                          <source>${javac.target}</source>
                          <target>${javac.target}</target>
                      </configuration>
                  </plugin>
      
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-shade-plugin</artifactId>
                      <version>2.2</version>
                      <executions>
                          <execution>
                              <id>main</id>
                              <phase>package</phase>
                              <goals>
                                  <goal>shade</goal>
                              </goals>
                              <configuration>
                                  <finalName>${uberjar.name}</finalName>
                                  <transformers>
                                      <transformer
                                              implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                          <mainClass>org.openjdk.jcstress.Main</mainClass>
                                      </transformer>
                                      <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                          <resource>META-INF/TestList</resource>
                                      </transformer>
                                  </transformers>
                              </configuration>
                          </execution>
                      </executions>
                  </plugin>
              </plugins>
          </build>
      
      

      然后进行测试

      mvn clean install
      

      image-20201222210358752

    java -jar target/jcstress.jar
    

    image-20201222210434850

  • 相关阅读:
    vs2015调试慢
    阿里正式发布《Java开发手册》终极版!
    为什么听有些人讲话让人抓狂
    hibernate 映射实例 学生 课程 成绩
    hibernate 树状映射
    hibernate 一对多双向的CURD
    hibernate 多对多双向关联
    hibernate 多对多单向
    hibernate 一对多双向
    hibernate 一对多关联
  • 原文地址:https://www.cnblogs.com/dalianpai/p/14175292.html
Copyright © 2011-2022 走看看