手机app前台响应时间使用自动化获取

需求:统计手机app几种场景的响应时间,包括前后台,这里简化为统计某个手机app登录的时间

分析:为么不能手工统计?

1:场景多;2:压测情况多;3:希望借助模拟器多开;两两组合情况较多

方案:使用自动化来实现,点击登录按钮开始计时,登录完毕查找元素出现再次计时,从而得到时间差

实践:

 //前方已省略app配置相关
   //登录输入用户名密码
   driver.findElement(By.id("com.lc.oaplus:id/username")).sendKeys("username");
   driver.findElement(By.id("com.lc.oaplus:id/password")).sendKeys("1");
  
   long startTime=0,endTime=0;
   String psStr="";
  
   //获取开始时间,点击登录按钮
   startTime=System.currentTimeMillis();
   driver.findElement(By.id("com.lc.oaplus:id/btn_login")).click();
  
   //成功点击待办发文这几个字后,获取结束时间
   driver.findElement(By.xpath("//android.widget.TextView[@text='待办发文']")).click();
   endTime=System.currentTimeMillis();
   System.out.println("登录所需要的时间为:"+(endTime-startTime)/1000.00+"秒");

运行结果:登录所需要的时间为:6.024秒

结果分析:运行结果6秒,人工预估大约1秒,所以程序存在问题,推测因程序需要通过appium操作app,推测定位花费时间,进行验证,将获取开始时间放在登录点击之后,即

//获取开始时间,点击登录按钮
    driver.findElement(By.id("com.lc.oaplus:id/btn_login")).click();
    startTime=System.currentTimeMillis();

再次运行查看结果:登录所需要的时间为:2.713秒

结果分析:时间减少一半多,故而定位花费时间较多,需要优化当前代码,登录场景开始时间的获取可以放在登录按钮定位点击之后,结束时间使用getpagesource()查看是否有相关内容进行获取

优化代码如下:

//点击登录按钮计时,因为登录按钮查询花费时间,所以点击完按钮后开始计时
   driver.findElement(By.id("com.lc.oaplus:id/btn_login")).click();
   startTime=System.currentTimeMillis();
   System.out.println(startTime);
  
   //若是通过找元素click来查找,因为定位要花费时间,明显比人眼查看时间花费多,所以使用循环查询源码
   for (int i = 0; i < 10000; i++) {
    psStr=driver.getPageSource();
    if(psStr.contains(psStr.contains("待办发文")){
     endTime=System.currentTimeMillis();
     break;
    }
 }  
    System.out.println(endTime);
   System.out.println("登录所需要的时间为:"+(endTime-startTime)/1000.00+"秒");

运行查看结果:登录所需要的时间为:2.48秒

这个时间个人以为可能会稍微准确点,到底是否准确还需要后期进行实践比对,请各位大神指正。若各位有更好统计手机app前台响应时间的方法,请指教。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值