如何在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

原文地址:https://www.cnblogs.com/dalianpai/p/14175292.html