android 自动化测试(Android自动化测试框架)
小深给大家谈谈android 自动化测试,以及Android自动化测试框架应用的知识点,希望对你所遇到的问题有所帮助。
android 自动化测试(Android自动化测试框架)
android 自动化测试(Android自动化测试框架)
1、return 1开始个简单的Android UI自动化测试time.sleep(1)1.使用adb命令连接真机或模拟器print "--------------退出清理工作"2.打开uiautomatorviewer工具3.使用uiautomatorviewer工具获取应用的元素进行定位4.简单介绍unittest框架的使用方法5.使用Python编写猫宁考勤应用注册模块的自动化测试1.使用adb命令连接真机或模拟器:手机USB连接电脑,进入开发者模式;cmd命令:adb devs ,查看手机是否连接这里写描述显示错误这是因为adb的端口被占用,我们需要查看是什么应用占用了这个端口(5037为adb默认端口)cmd命令 : netstat -aon|findstr “5037”这里写描述可以看到占用5037端口对应的程序的PID号为8388;cmd命令 : tasklist|findstr “8388”这里写描述可以看出8388对应的程序为kadb.exe,说明该程序正在使用5037端口;这时我们需要在任务管理器中结束kadb.exe进程,按快捷键“Ctrl+Shift+Esc”调出Windows任务管理器,找到“kadb.exe”,单击下方的结束进程即可!这里写描述我们再次运行cmd命令:adb devs这里写描述这一步成功后我们才能运行sdk自带的uiautomatorviewer;我们需要用uiautomatorviewer工具来获取元素,用于定位。
2、cmd命令:uiautomatorviewer,打开uiautomatorviewer界面这里写描述或者找到sdk目录:sdktools中找到uiautomatorviewer.bat文件双击运行这里写描述2.打开uiautomatorviewer工具这里写描述我们可以根据text,resource-id,class等元素进行定位3.使用uiautomatorviewer工具获取应用的元素进行定位这里我使用python自带的IDLE进行编写测试脚本,打开python文件找到IDLE(python GUI)双击打开,如图:这里写描述4.简单介绍unittest框架的使用方法# -- coding:utf-8 --from uiautomator import dev as dimport unittestclass Mytest(unittest.TestCase):#初始化工作def setUp(self):print "--------------初始化工作"#退出清理工作def tearDown(self):#测试点击猫宁考勤casedef test_login(self):d(text="猫宁考勤").click()print "--------------测试1"#测试2def test_z(self):print "--------------测试2" #这里你可以写你的第二个测试用例,#测试3def test_w(self):print "--------------测试3" #这里你可以写你的第三个测试用例。
3、if __name__ == '__main__':unittest.main()Testing started at 21:14 …————–初始化工作————–测试1————–退出清理工作————–初始化工作————–测试3————–退出清理工作————–初始化工作————–测试2————–退出清理工作Process finished with exit code 0从结果中我们可以看出unittest框架的运行方式为:setUp 测试1 tearDownsetUp 测试2 tearDownsetUp 测试3 tearDown5.使用Python编写猫宁考勤应用注册模块的自动化测试# -- coding:utf-8 --from uiautomator import dev as dimport timeimport unittestclass MyTestSuite(unittest.TestCase):# 初始化工作def setUp(self):print "--------------初始化工作"# 退出清理工作def tearDown(self):#方法# 判断控件是否存在 & textdef check_controls_exists(self, controls_text):if d(text=controls_text).exists:return 0# 判断按钮是否置灰 & text & clickabledef check_controls_click_text(self, controls_text):if d(text=controls_text)..get("clickable") is True:return 0#assertIn(a, b) a in bdef check_ainb(self,resourceid,b):if d(resourceId=resourceid)..get("text") in b:return 0## 注册模块def test_Aregister(self):try:time.sleep(2)#猫宁考勤开启全新时代self.assertEqual(self.check_controls_click_text("注册"),1,u"猫宁考勤开启全新时代")# 猫宁考勤开启全新时代--》点击注册按钮进入注册猫宁界面d(text="注册").click()time.sleep(3)#注册猫宁界面self.assertEqual(self.check_text("com.isentech.attendancet:id/regis_phone","请输入手机号码"),1,u"注册页面-》请输入手机号码")self.assertEqual(self.check_text("com.isentech.attendancet:id/regis_verifycode","请输入"),1,u"注册页面-》请输入")self.assertEqual(self.check_controls_click_text("获取"), 0,u"注册页面-》获取")self.assertEqual(self.check_controls_click_text("注册"), 0,u"注册页面-》注册")time.sleep(2)#《中科爱讯服务协议》d(text="《中科爱讯服务协议》").click()time.sleep(2)self.assertEqual(self.check_ainb("com.isentech.attendancet:id/title","服务协议"), 1,u"注册页面-》服务协议")d(resourceId="com.isentech.attendancet:id/title_back").click()#手机号不输入是否能注册d(text="注册").click()time.sleep(3)# 手机号只输入1个数字是否能注册&只输入1个数字是否能获取d(resourceId="com.isentech.attendancet:id/regis_phone").set_text("1")self.assertEqual(self.check_controls_click_text("获取"), 0)d(text="注册").click()d(resourceId="com.isentech.attendancet:id/regis_phone").clear_text()#只输入5个数字是否能获取d(resourceId="com.isentech.attendancet:id/regis_phone").set_text("11111")self.assertEqual(self.check_controls_click_text("获取"), 0)d(resourceId="com.isentech.attendancet:id/regis_phone").clear_text()#只输入手机号是否能注册d(resourceId="com.isentech.attendancet:id/regis_phone").set_text(phone_number)self.assertEqual(self.check_controls_click_text("注册"), 0)d(text="注册").click()#输入正确的&获取是否高亮d(resourceId="com.isentech.attendancet:id/regis_verifycode").set_text("5648")self.assertEqual(self.check_controls_click_text("获取"), 1)time.sleep(2)#密码只输入1个数字是否能注册&注册按钮是否高亮d(resourceId="com.isentech.attendancet:id/regis_pass").set_text("1")d(resourceId="com.isentech.attendancet:id/regis_passAgain").set_text("1")self.assertEqual(self.check_controls_click_text("注册"), 0,u"密码只输入1个数字是否能注册")d(resourceId="com.isentech.attendancet:id/regis_pass").clear_text()d(resourceId="com.isentech.attendancet:id/regis_passAgain").clear_text()#输入不相同的密码是否能注册d(resourceId="com.isentech.attendancet:id/regis_pass").set_text("123456")d(resourceId="com.isentech.attendancet:id/regis_passAgain").set_text("12345")self.assertEqual(self.check_controls_click_text("注册"), 0,u"输入不相同的密码是否能注册")d(resourceId="com.isentech.attendancet:id/regis_pass").clear_text()d(resourceId="com.isentech.attendancet:id/regis_passAgain").clear_text()#输入正确的密码是否能注册&我已同意是否打钩d(resourceId="com.isentech.attendancet:id/regis_pass").set_text("123456")d(resourceId="com.isentech.attendancet:id/regis_passAgain").set_text("123456")self.assertEqual(self.check_controls_click_resourceId("com.isentech.attendancet:id/regis_agree"), 1)self.assertEqual(self.check_controls_click_text("注册"), 1)time.sleep(2)d(text="注册").click()time.sleep(8)except Exception, e:print u"Error: 注册模块有问题n", edef test_app():test_unit = unittest.TestSuite()test_unit.addTest(MyTestSuite("test_Aregister"))if __name__ == "__main__":# 测试appunittest.main()。
本文到这结束,希望上面文章对大家有所帮助。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系 836084111@qq.com 删除。