下面我们开始第一个简单的Android UI自动化测试
1.使用adb命令连接真机或模拟器
2.打开uiautomatorviewer工具
3.使用uiautomatorviewer工具获取应用的元素进行定位
4.简单介绍unittest框架的使用方法
5.使用Python编写猫宁考勤应用注册模块的自动化测试
1.使用adb命令连接真机或模拟器:
手机USB连接电脑,进入开发者模式;
cmd命令:adb devices ,查看手机是否连接
4.简单介绍unittest框架的使用方法
‘贰’ python可以开发安卓app吗
可以的,因为很多APP的软件都是通过这个软件来进行编制的,所以他比较先进
‘叁’ python可以开发安卓应用吗
不太理想,如果你只会py,而且又有充足的精力的话,你可以那py来开发安卓程序,当然实现情况是可以利用的资源太少。(已有的例子少,相关书籍少,关键那它开发出来的实际产品也少。。。),所以,你喜欢的话我很支持你,如如果开发出来的话,放到oschina的git上,我一定收藏。
‘肆’ 如何在android上运行Python代码
在android上运行python脚本,或者在android上使用python交互界面,对熟悉python的研究或开发人员来说,是一件很有吸引力的事情,因为python脚本真是非常高效,另外,有很多非常好的库
android官方目前没有支持在android设备运行python,但是网上有一些项目组做了这个事情on-apps-scripts-on-android/ 这个链接就提供好几个项目,我稍微尝试了 Kivy 这种方式, 需要安装
的东西太多,就放弃了. 推荐 e/28这种方式,使用 qpython 项目, 可以用非常少的付出得到 android 上可以运行的 python 环境.
1. Please download QPython from url:hcom/ 这里我采用不同的方式,直接从360手机助手搜索并安装 qpython , 更加方便
2. adb install qpython package into device or emulator
3. change /system folder to be readable and writeable
4. modify /system/etc/mkshrc to add following at the end of the file
ANDROID_PRIVATE=/data/data/com.hipipal.qpyplus/files;export ANDROID_PRIVATE
ANDROID_PUBLIC=/storage/sdcard/com.hipipal.qpyplus;export ANDROID_PUBLIC
ANDROID_SOCKET_zygote=9;export ANDROID_SOCKET_zygote
AP_HANDSHAKE=10e4c98a-4216-47a3-bf67-57b99d7d516e;export AP_HANDSHAKE
AP_HOST=127.0.0.1;export AP_HOST
AP_PORT=45367;export AP_PORT
LD_LIBRARY_PATH=/vendor/lib:/system/lib:/data/data/com.hipipal.qpyplus/files/lib:/data/data/com.hipipal.qpyplus/files:/data/data/com.hipipal.qpyplus/lib
export LD_LIBRARY_PATH
PATH=/data/data/com.hipipal.qpyplus/files/bin:/sbin:/vendor/bin:/system/bin:/system/xbin
export PATH
PYTHONHOME=/data/data/com.hipipal.qpyplus/files;export PYTHONHOME
PYTHONOPTIMIZE=2;export PYTHONOPTIMIZE
PYTHONPATH=/data/data/com.hipipal.qpyplus/files/lib/python2.7/:/data/data/com.hipipal.qpyplus/files/lib/python2.7/lib-dynload/:/data/data/com.hipipal.qpyplus/files/lib/python2.7/site-packages/:/storage/sdcard/com.hipipal.qpyplus/lib/python2.7/site-packages/:
export PYTHONPATH
PYTHONSTARTUP=/storage/sdcard/com.hipipal.qpyplus/lib/python2.7/site-packages/qpythoninit.py
export PYTHONSTARTUP
TMPDIR=/storage/sdcard/com.hipipal.qpyplus/cache;export TMPDIR
5 relogin the shell
6. type python in the adb shell
root@generic:/ # python // 我尝试的时候,直接运行 python (其实是运行 /data/data/com.hipipal.qpyplus/files/bin/python) 会报错: error: only position independent executables (PIE) are supported. 我测试的设备是 Nexus 6 , android 6.0 , 在
这些比较新的 android 系统上有保护,需要可执行程序使用 -PIE 进行编译,否则无法运行. 但我发现同样的目录下 python-android5 是可以运行的, 所以就 mv python python.bak ; ln -s python-android5 python ; 这样后面就可以直接运行 python 了.
分类:android
‘伍’ python 能开发 Android 应用吗
python可以开发Android应用。
Python是一种解释型脚本语言,可以应用于以下领域:
1、Web 和 Internet开发;
2、科学计算和统计;
3、人工智能;
4、教育;
5、桌面界面开发;
6、软件开发;
7、后端开发。
(5)pythonandroid扩展阅读:
操作系统与应用程序的沟通桥梁,应用分为两层:函数层(Library)和虚拟机(Virtual Machine)。 Bionic是 Android 改良libc的版本。
Android 同时包含了Webkit,所谓的Webkit 就是Apple Safari 浏览器背后的引擎。Surface flinger 是就2D或3D的内容显示到屏幕上。Android使用工具链(Toolchain)为Google自制的Bionic Libc。
Android采用OpenCORE作为基础多媒体框架。
Open CORE可分7大块:PVPlayer、PVAuthor、Codec、PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。
Android 使用skia 为核心图形引擎,搭配OpenGL/ES。skia与Linux Cairo功能相当,但相较于Linux Cairo, skia 功能还只是雏形的。
2005年Skia公司被Google收购,2007年初,Skia GL源码被公开,Skia 也是Google Chrome 的图形引擎。
Android的多媒体数据库采用SQLite数据库系统。数据库又分为共用数据库及私用数据库。用户可通过ContentResolver类(Column)取得共用数据库。
Android的中间层多以Java 实现,并且采用特殊的Dalvik 虚拟机(Dalvik Virtual Machine)。Dalvik虚拟机是一种“暂存器型态”(Register Based)的Java虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少。
Dalvik虚拟机可以有多个实例(Instance), 每个Android应用程序都用一个自属的Dalvik虚拟机来运行,让系统在运行程序时可达到优化。Dalvik 虚拟机并非运行Java字节码(Bytecode),而是运行一种称为.dex格式的文件。
参考资料:网络-Android
‘陆’ 可以用Python写Android客户端的服务器端吗
可以的
服务器端使用python完成,下面为python代码:
代码如下:
#server.py
import socket
def getipaddrs(hostname):#只是为了显示IP,仅仅测试一下
result = socket.getaddrinfo(hostname, None, 0, socket.SOCK_STREAM)
return [x[4][0] for x in result]
host = ''#为空代表为本地host
hostname = socket.gethostname()
hostip = getipaddrs(hostname)
print('host ip', hostip)#应该显示为:127.0.1.1
port = 9999 # Arbitrary non-privileged port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host, port))
s.listen(4)
while True:
conn, addr = s.accept()
print('Connected by', addr)
data = conn.recv(1024)
if not data: break
conn.sendall(data)#把接收到数据原封不动的发送回去
print('Received', repr(data))
conn.close()
‘柒’ python导入Android模块,提示不存在
madagascar的自带模块默认存放在$RSFROOT/lib/python/site-packages目录下,模块的搜索路径由环境变量PYTHONPATH决定。安装madagascar时,默认的环境变量值为PYTHONPATH=$RSFROOT/lib/python/site-packages,此时虽然所有的模块都包含在这个文件夹下,但是编译时默认只搜索指定目录的直接内容,而不搜索其子目录,因此对于模块不存在问题有两种解决办法。
比如 import fdmod
时提示fdmod模块不存在,通过查找,我们可以知道这个模块是放在.../site-packages/rsf/recipes目录下的:
a. 预处理命令改为 from rsf.recipes import
fdmod.因为默认从site-packages目录开始查找,可以找到rsf,
而rsf.recipes则表示rsf目录下的recipes子目录
b. 修改环境变量PYTHONPATH。为了一劳永逸,修改变量的方法更加方便。在设置文件 .bashrc 中添加
export PYTHONPATH=$PYTHONPATH:路径1:2:3:。。。
新加的路径最好是包括目录site-packages下的所有子目录以及子目录下的子目录,也就是说要包括到最低一级的目录,修改完之后
source 一下配置文件就可已了。然后重新启动shell。以后在导入自带模块时,直接写模块名称就可已了
‘捌’ python可以进行android开发么
完全没问题,目前python for android项目的进展很迅速,python能在android上稳定运行。是否流畅还要看硬件配置如何了。图形界面也有成熟的项目,比如kivy等。可以制作稳定实用的App。
‘玖’ android中python有什么作用
Python解释器的位置是一个安装选项,因此它可能在其它的位置。必要时询问你身边的Python专家或者系统管理员(/usr/local/python是另一个常见的安装路径)。在Windows上,Python通常安装在C:\Python24[U1] ,但你可以在安装时改变这个路径。要把这个路径加入到你的path中,请在命令行窗口里执行以下命令
在Python的提示符候输入一个文件结束符(Control-D on Unix and Control-Z on Windows)会使解释器退出并返回状态码0。如果文件结束符不起作用,你还可以执行命令”import sys;sys.quit()”来退出解释器。解释器的行编辑功能通常并不是很强大。但在Unix上,安装了解释器就激活了GNU readline库的支持。该库加入了很多复杂的交互式编辑和历史纪录的功能。
最快的检测命令行编辑是否支持的办法也许是在你遇到的第一个Python提示符候输入Control-P。如果听到嘟嘟响,就说明你可以使用命令行编辑。在附录A中可以看到关于这些编辑键的介绍。如果什么都没有发生或者显示了字母P,则表示命令行编辑功能不可用,你只能使用backspace从当前行删除字符。
解释器有些像Unix的Shell:当调用时的标准输入连接到一个tty设备时,交互的读入命令并执行。如果跟着一个文件名作为参数,或者以一个文件作为标准输入,则从该文件读入并执行脚本。
第二种启动解释器的办法是”python –c command [arg]…”。解释器会执行传入的命令,就像shell的-c选项一样。因为Python的语句经常包含空格或者其它对shell有特殊意义的字符,最好把命令用双引号引起来。一些Python模块也是很有用的脚本。可以用”python –m mole [arg]…”的方式来调用。解释器会执行模块的源文件,就如同你在命令行上给出了模块的全名一样。
注意”python file”和”python <file”有一点区别。后一种方式程序需要的输入,如input()和raw_input()的调用会从输入文件读。同时在程序执行以前解释器已经读到输入文件的末尾了。
因此程序会立刻遇到一个end-of-file。在前一种情况下(通常是你希望的)输入从Python解释器标准输入相关联的任何文件或者设备读入。当使用脚本文件时,有时需要在执行完脚本候进入交互模式。可以通过在脚本前加上-i达到这种效果。(当脚本从标准输入读入时该方法不起作用,和上一段解释的原因一样)。
脚本名称和附加的参数被放在sys.argv中传入脚本。sys.argv是一个字符串行表,长度最少为1。当没有脚本和参数传入时,sys.argv[0]是一个空串。当脚本名用’-‘指定时(表示标准输入),sys.argv[0]被置为’-‘。使用-m mole选项时,sys.argv[0]被置为模块的全名。
-c command 或-m mole以后的选项不被Python解释器处理,而是作为sys.argv传给要执行的命令或模块。
从tty读入命令时,解释器处于交互模式。
在这种模式下它用主提示符来提示用户输入下一个命令。主提示符通常是三个大于号(“>>>”)。在一行输入没有终结需要在下一行继续输入时的副提示符缺省时三个点号(“…”)。