返回顶部
首页 > 资讯 > 精选 >有哪些实现android自动化测试部署与运行Shell脚本
  • 168
分享到

有哪些实现android自动化测试部署与运行Shell脚本

2023-06-09 18:06:33 168人浏览 独家记忆
摘要

本篇内容介绍了“有哪些实现Android自动化测试部署与运行shell脚本”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!主流程为:检测是否指

本篇内容介绍了“有哪些实现Android自动化测试部署与运行shell脚本”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

主流程为:

检测是否指定端口的模拟器已经运行,若有则关闭
2.创建模拟器
3.启动模拟器
4.用ant build包,通过检查bin目录下有没有apk来确定是否成功
5.检查指定端口的模拟器是否已正常运行
6.用adb安装apk
7.启动apk的activity,让程序自己跑
8.用shell ps循环检测程序是否已退出,若已退出,检查是否sdcard是是否已成功生成报告文件
9.若报告文件不完整,即程序被中止/崩溃,重启activity
10.检测是否超时

代码如下:


#!/bin/bash
# by hursing 2013-10-28
# 指定port,可以不干扰其它正在运行的模拟器。根据sdk文档,port可以在5554至5584之间,最好是偶数
portNumber=5578
emulatorPID=`ps -ef | grep "emulator" | grep "port $portNumber" | awk '{print $2;}'`
if [ -n "$emulatorPID" ]; then
 echo "close emulator window"
 kill -9 $emulatorPID
fi

# 创建模拟器,force选项能覆盖已存在的模拟器,即sdcard内容也抹掉。echo no是回答不需要自定义硬件配置
echo "create avd"
emulatorName="Test"
echo no | android create avd --name $emulatorName --force --target android-17 --sdcard 300M --abi armeabi-v7a

# 启动模拟器,port选项指定tcp端口。&是另起进程执行
echo "start avd"
emulator -avd $emulatorName -port $portNumber &

# 没有证书签名,所以是debug
echo "build apk"
android update project -p .
ant debug
if [ $? -ne 0 ]; then
 echo "build failed, try again now..."
 ant clean
 ant debug
 if [ $? -ne 0 ]; then
  echo "can NOT build apk!"
  exit 5
 fi
fi
apkFile=`find ./bin/*.apk | grep -v "unaligned"`
if [ -z "$apkFile" ]; then
 echo "no apk file generated!"
 exit 7
fi

# wait-for-device能block住脚本直到不显示offline
echo "check emulator ready..."
emulatorSerialNumber="emulator-$portNumber"
ready=`adb devices | grep "$emulatorSerialNumber"`
if [ -z "$ready" ]; then
 echo "emulator can NOT launch."
 exit 3
else
 ready=`adb devices | grep "$emulatorSerialNumber.*offline"`
 if [ -n "$ready" ]; then
  echo "wait-for-device"
  adb -s $emulatorSerialNumber wait-for-device
  sleep 10
 fi
fi

# 当adb可以安装时,模拟器未必已经初始化完成,还是会失败的,所以要检测error,试3遍。
echo "install apk"
let maxTryTimes=3
while [ $maxTryTimes -gt 0 ]; do
 result=`adb -s $emulatorSerialNumber install $apkFile`  # 'ant installd' can NOT specify device
 check=`echo "$result" | grep -o "Error"`
 if [ -z "$check" ]; then
  echo "successfully install apk"
  break;
 else
  echo "$result"
  echo "install failed, try again after sleeping 10 seconds"
  sleep 10
  let maxTryTimes-=1
 fi
done
if [ $maxTryTimes -eq 0 ]; then
 echo "can NOT install apk to emulator."
 exit 4
fi

echo "start MainActivity"
activityName="com.hursing.MainActivity"
packageName=`cat AndroidManifest.xml | grep -o "package=\".*\"" | sed 's/package="//;s/"//'`
adb -s $emulatorSerialNumber shell am start -W -n "$packageName/$activityName"

heartBeat=10
echo "waiting for test finished.check every $heartBeat seconds."
resultFile="/sdcard/result.txt"
successFlag="End at "
sleep $heartBeat
let maxTimeLimit=60*10
while [ $maxTimeLimit -gt 0 ]; do
 running=`adb -s $emulatorSerialNumber shell ps | grep $packageName`
 if [ -n "$running" ]; then
  let maxTimeLimit-=$heartBeat
  echo "waiting, sleep another $heartBeat seconds..."
  sleep $heartBeat
 else
  report=`adb -s $emulatorSerialNumber shell cat "$resultFile"`
  check=`echo "$report" | grep -o "$successFlag"`
  if [ -z "$check" ]; then
   echo "app crash, run activity again..."
   adb -s $emulatorSerialNumber shell am start -W -n "$packageName/$activityName"
  else
   echo "app exit nORMally"
   break
  fi
 fi
done

echo "close emulator window."
kill -9 `ps -ef | grep "emulator" | grep "port $portNumber" | awk '{print $2;}'`

if [ $maxTimeLimit -eq 0 ]; then
 echo "Test timeout!"
 echo "$report"
 exit 9
else
 echo "Test Finished!"
 echo
 echo "$report"
fi

java代码里有一点要注意,如果程序崩溃,弹出了"has stopped”对话框,那么ps还是能查到的,要自己调用

代码如下:

Thread.setDefaultUncaughtExceptionHandler


,在handler里直接System.exit(0)才行。

“有哪些实现android自动化测试部署与运行Shell脚本”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 有哪些实现android自动化测试部署与运行Shell脚本

本文链接: https://lsjlt.com/news/257171.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 有哪些实现android自动化测试部署与运行Shell脚本
    本篇内容介绍了“有哪些实现android自动化测试部署与运行Shell脚本”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!主流程为:检测是否指...
    99+
    2023-06-09
  • 实现android自动化测试部署与运行Shell脚本分享
    我的配置是linux 64, android4.2.2的sdk。 实现的细节都在代码注释里了,变量名以及echo的内容也是说明的一部分。 主流程为: 1.检测是否指定端口的模拟器已经运行,若有则关闭 2.创...
    99+
    2022-06-04
    脚本 测试 android
  • seleniumIDE自动化测试脚本的实现
    目录selenium IDE是干什么的selenium IDE环境的安装selenium IDE的使用selenium IDE是干什么的 Selenium IDE   是一...
    99+
    2024-04-02
  • 阿里云ECS脚本部署实现自动化运维与提升效率
    随着云计算的快速发展,越来越多的企业开始将业务部署在阿里云ECS上。然而,随着业务规模的不断扩大,手动配置和部署服务器可能会变得繁琐和耗时。为了提高运维效率,阿里云提供了ECS脚本部署功能。本文将详细说明如何使用阿里云ECS脚本部署功能。 ...
    99+
    2023-11-18
    阿里 脚本 效率
  • python自动化测试selenium执行js脚本实现示例
    WebDriver有2个方法执行Java Script脚本。 (1)同步执行:execute_script (2)异步执行:execute_async_script from s...
    99+
    2024-04-02
  • git自动化部署php脚本怎么实现
    本文操作环境:linux5.9.8系统、Git 2.30.0版、DELL G3电脑git自动化部署php脚本怎么实现git+php部署webhook自动化脚本 实现代码同步本文将介绍git+php部署webhook自动化脚本 实现代码同步 ...
    99+
    2014-07-13
    git php
  • git自动化部署php脚本该如何实现
    今天就跟大家聊聊有关git自动化部署php脚本该如何实现,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。git自动化部署php脚本的实现方法:1、安装git;2、克隆仓库代码;3、更改...
    99+
    2023-06-26
  • PHP Linux脚本操作实例:实现自动化部署
    近年来,随着软件行业的快速发展,部署工作在开发流程中变得愈发重要。为了提高效率,许多开发团队都开始采用自动化部署来简化繁琐的部署过程。在这其中,PHP语言在Linux环境下的脚本操作成为了一种常见的实现方式。本文将介绍如何使用PHP脚本在L...
    99+
    2023-10-21
    Linux PHP 自动化部署
  • Python自动化测试之登录脚本的实现
    目录环境准备1、安装selenium模块2、安装浏览器驱动器代码1、登录代码2、xpath定位元素标签环境准备 前提已经安装好python、pycharm,配置了对应的环境变量。 1...
    99+
    2023-02-23
    Python自动化登录 Python自动化测试登录
  • golang自动化运维测试的方法有哪些
    Rate limit reached for gpt-3.5-turbo in organization org-68Lqb4iD2...
    99+
    2023-10-18
    golang
  • 实现UI自动化测试的问题有哪些
    本文小编为大家详细介绍“实现UI自动化测试的问题有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“实现UI自动化测试的问题有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。首先,讲讲UI自动化测试的误区吧误...
    99+
    2023-06-05
  • python自动化测试面试题与答案有哪些
    本篇内容主要讲解“python自动化测试面试题与答案有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python自动化测试面试题与答案有哪些”吧!1、什么项目适合做自动化测试?关键字:不变的...
    99+
    2023-07-05
  • Python自动化测试之登录脚本如何实现
    今天小编给大家分享一下Python自动化测试之登录脚本如何实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。环境准备前提已经...
    99+
    2023-07-05
  • 怎么实现android应用程序自动化测试的批处理脚本
    本篇内容介绍了“怎么实现android应用程序自动化测试的批处理脚本”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!测试平台:兼容androi...
    99+
    2023-06-08
  • 基于python实现微信收红包自动化测试脚本(测试用例)
    测试用例(1)  测试用例(2) 代码如下(python): # coding=utf-8 from appium import webdriver impor...
    99+
    2024-04-02
  • python怎么实现微信收红包自动化测试脚本
    这篇文章主要介绍“python怎么实现微信收红包自动化测试脚本”,在日常操作中,相信很多人在python怎么实现微信收红包自动化测试脚本问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python怎么实现微信收...
    99+
    2023-06-20
  • Bash脚本中如何使用Java API实现自动化测试?
    自动化测试是软件开发中不可或缺的一环,它可以提高测试效率,降低测试成本,同时也可以保证软件质量。在自动化测试中,Bash脚本和Java API是两个非常重要的工具。本文将介绍如何在Bash脚本中使用Java API实现自动化测试。 一、B...
    99+
    2023-10-27
    api django bash
  • shell脚本实现自动化下载并检测ftp文件备份
    本篇内容介绍了“shell脚本实现自动化下载并检测ftp文件备份”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!实现代码:#!/bin/bas...
    99+
    2023-06-09
  • 有哪些超级实用的Python自动化脚本
    本篇内容主要讲解“有哪些超级实用的Python自动化脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“有哪些超级实用的Python自动化脚本”吧!给照片添加水印给照片添加水印的代码多种多样,下面...
    99+
    2023-07-06
  • Linux环境中用Python脚本实现自动化测试的方法
    Linux环境中用Python脚本实现自动化测试的方法随着软件开发的迅猛发展,自动化测试在保证软件质量和提高开发效率方面起着至关重要的作用。而Python作为一种简单易用的编程语言,具有很强的可移植性和开发效率,被广泛应用于自动化测试中。本...
    99+
    2023-10-22
    Python 自动化测试 Linux 关键词:
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作