51Testing软件测试论坛

标题: 新手接口压力测试求解 [打印本页]

作者: 江诗    时间: 2015-12-14 10:05
标题: 新手接口压力测试求解
描述:这是一个接口压力测试,调用JAVA编写的一个函数,对返回值进行校验,代码如下:
import lrapi.lr;
import com.lr.test.*;
public class Actions
{
        public int init() throws Throwable {
                return 0;
        }//end of init
       
        public int action() throws Throwable {             
            String email ="<email>";
        String address_url ="http://192.168.1.12:8080/interface/index.php/v1/fun?email="+email+";
            String result = "";            
            lr.rendezvous("ReadGO");
            lr.start_transaction("FUN");
            lr.start_sub_transaction("A","FUN");            
            lr.start_sub_transaction("B","FUN");
            lr.start_sub_transaction("C","FUN");
            result = test.getHttpByUrl(address_url);
            //结果A
            if(!test.getString(result,"NUM").equals("12") && test.getString(result,"Letter").equals("A"))
                {               
                        lr.end_transaction("FUN", lr.PASS);
                        lr.end_sub_transaction("A", lr.PASS);
                        lr.end_sub_transaction("C", lr.FAIL);
                        lr.end_sub_transaction("B",lr.FAIL);
                        lr.error_message(email);
                       
            /结果B
            }
                else if (test.getString(result,"NUM").equals("12") && test.getString(result,"Letter").equals("A"))
                {
                        lr.end_transaction("FUN", lr.PASS);
                        lr.end_sub_transaction("A", lr.FAIL);
                        lr.end_sub_transaction("B",lr.PASS);
                        lr.end_sub_transaction("C", lr.FAIL);               
                        lr.error_message(email);
                       
            //结果C
            }
                else if(test.getString(result,"Letter").equals("C"))
                {
                        lr.end_transaction("FUN", lr.PASS);
                        lr.end_sub_transaction("A", lr.FAIL);               
                        lr.end_sub_transaction("B",lr.FAIL);
                        lr.end_sub_transaction("C", lr.PASS);
                        lr.error_message(email);
            }
                else
                {
                        lr.error_message(result);
                        lr.end_transaction("FUN", lr.FAIL);
                        lr.end_sub_transaction("A", lr.FAIL);               
                        lr.end_sub_transaction("B",lr.FAIL);
                        lr.end_sub_transaction("C", lr.FAIL);
            }            
            return 0;
        }//end of action

        public int end() throws Throwable {
                return 0;
        }//end of end
}

问题:
1、如果压力只执行一次(Run until completion),通过事物数和打印email个数一致;如果压力持续执行几分钟,打印email个数会大于通过的事物数,这是怎么回事?
2、一般压力测试只执行一次(Run until completion),还是持续执行一段时间呢?
3、对于我的代码,这样做是否合适呢,有其他更好的方法吗?
4、有跳过前端直接测试Redis处理能力的思路、方法或者例子吗?


作者: fhhh_eyou    时间: 2015-12-14 11:44
1.时间与通过的事物数是成正比。
2.一般压力测试只执行一段时间。
3.这只是个简单测试,一段时间后发现不适合。
4.飞机航空票例子。
作者: 江诗    时间: 2015-12-14 12:34
fhhh_eyou 发表于 2015-12-14 11:44
1.时间与通过的事物数是成正比。
2.一般压力测试只执行一段时间。
3.这只是个简单测试,一段时间后发现不 ...

为什么压力持续执行几分钟,打印email个数会大于通过的事物数呢?
作者: fhhh_eyou    时间: 2015-12-14 12:36
多做几次测试这个项目,总结一下;
以其它项目为例再进行测试,查看一下情况。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2