通过上一篇文章,Appium环境已经搭建好了,下面我们通过Python脚本来测试原生的计算器程序

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

需要安装Android模拟器,这里使用sdk自带的模拟器

双击SDK目录下的 SDK Manager.exe,进行下载 API19

下载好之后 双击SDK目录下的 AVD Manager.exe 创建下载好的模拟器,点击Create 按钮

创建好之后,Start就好了

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

需要安装Appium Client

cmd打开window控制台:pip install Appium-Python-Client

启动Appium,点击左上角安卓机器人,设置相关信息,如下:

点击右上角黑色三角形图标,启动Appium.

-->打开cmd  输入  adb devices -l    得到模拟器的 deviceName

--> 打开cmd 输入  adb logcat -v time -s ActivityManager 获得被测程序 appPackage  appActivity

 # encoding:utf-8
import unittest
from appium import webdriver
import time """
这是一个计算器的单元测试脚本
""" class MyTestCase(unittest.TestCase):
#脚本初始化,获取操作实例
def setUp(self):
desired_caps = {}
desired_caps['platformName'] = 'Android' #指定Android平台
desired_caps['platformVersion'] = '4.4'
desired_caps['deviceName'] = 'emulator-5554' #上面已有讲解
desired_caps['appPackage'] = 'com.android.calculator2' #被测程序包名
desired_caps['appActivity'] = '.Calculator'
desired_caps['unicodeKeyboard'] = 'True' #指定键盘编码
desired_caps['resetKeyboard'] = 'True'
self.driver = webdriver.Remote('http://localhost:4723/wd/hub',desired_caps) def test_something(self):
"""
1+2=3 的单元测试
:return:
"""
number1 = self.driver.find_element_by_id("digit1").click() #定位按钮1并点击
number_add = self.driver.find_element_by_id("plus").click() #定位按钮 + 并点击
number2 = self.driver.find_element_by_id("digit2").click() #定位按钮2并点击
number_equal = self.driver.find_element_by_id("equal").click() #定位按钮等于号(=)并点击
try:
result = self.driver.find_element_by_class_name("android.widget.EditText").text
self.assertEqual(result,u"")
except Exception:
print "Experiment Result Error"
self.fail() def tearDown(self):
self.driver.quit() if __name__ == '__main__':
unittest.main()

最新文章

  1. titit. 深入理解 内聚( Cohesion)原理and  attilax大总结
  2. Win10 UWP开发实现Bing翻译
  3. CSS实现垂直居中的5种方法
  4. 通过命令行连接Wifi
  5. Client默认用户及登录密码(转)
  6. Lua笔记(1)
  7. settimeout如何调用方法的时候,传递参数
  8. 索引 split2
  9. SQL经典题-实战
  10. 【转】那些好用的iOS开发工具
  11. cf C. Prime Number
  12. DataTable去除重复行
  13. java String 怎么看里面有几个指定字符
  14. Ubuntu中改变文件的默认打开方式
  15. void main(), int main() 和int main(void)的区别
  16. 方伯伯的玉米田[SCOI2014]
  17. VUE环境项目搭建以及简单的运行例子
  18. vue服务器端渲染
  19. console 命令进行 JS 调试的灵活用法
  20. HTTP中的重定向和请求转发的区别(转)

热门文章

  1. Android Studio 中修改Apk名称
  2. 分布式数据库TiDB的部署
  3. WCF 内置跟踪日志
  4. PyQt5安装目录中找不到designer.exe与pyrcc5.exe
  5. hdu 3555 Bomb(不要49,数位DP)
  6. 史考特证券(Scottrade)填写提款申请表的要求以及注意事项
  7. 自定义Base16加密
  8. 浅谈如何使用swfupload工具与struts2无缝相接
  9. 一:配置使用阿里云Maven库
  10. C#的Main(String[] args)参数输入问题