做企业公示的数字证书网站,广州seo推广运营专员,茂名网站建设,做性的网站有哪些目录
前言#xff1a;
框架共性总结
Auto_Analysis 权限弹窗识别 前言#xff1a; Python Appium UI自动化测试框架是一种用于测试移动应用程序的工具#xff0c;它结合了Python编程语言和Appium测试框架的功能。
框架共性总结
1 自动找设备 连接设备 2 自动启 appium …目录
前言
框架共性总结
Auto_Analysis 权限弹窗识别 前言 Python Appium UI自动化测试框架是一种用于测试移动应用程序的工具它结合了Python编程语言和Appium测试框架的功能。
框架共性总结
1 自动找设备 连接设备 2 自动启 appium server 3 用例框架 unittest pytest 4 用例组织 yml 读 ini 读 excell 或做 html 前端编写 5 用例断言 unittest 的 assert 或是 pytest 或是第三方 asertpy 6 用例报告形式格式 htmltestrunner Allure ExtentReports 等 这个是 Auto_Analysis 7 用例多线程跑 失败重跑机制 8 android 方向自动监控权限弹窗macaca 有服务参数 permissionPatterns 实现appium 也可以Auto_Analysis 在 public.installApp 也实现了一种监控屏幕是否有需要点击的安装按钮 9 执行过程异常捕获与 Log 这个 Auto_Analysis 的 log 做的日志非常好,用的是 logging. 10 执行过程性能捕获 是 adb 形式的 还是其他形式的 比如 atx 引入的 gt 还是专业的 appetizer 工具。
以上简单逛论坛发现的一些不错的框架思路和开源实现汇总每个人的实现和支持都或多或少不一样。开源的我都调通了大致看了下各有优劣。 有的我想要的在这个框架有的我想看到的在另一个框架。总之每个项目都各有优点又各有劣处。
所以想发起个讨论贴坛子里的各位 python 大牛可以来大家一起讨论下。到底共性总结节里提到的到底用什么实现最好。
Auto_Analysis 权限弹窗识别 Auto_Analysis 在 public.installApp 也实现了一种监控屏幕是否有需要点击的安装按钮 调试了下 发现了这里 在我的小米 mix2 里 安装 demo 的 apk 没法点继续安装 所以想扩展的话 可以把不同系统的写到这里。 比如安卓原生的就是 com.android*** 而小米 的我发现都是 com.miui***。
先捕获 miui9.2 的安装弹窗 看看到底是啥 原来 packagecom.miui.securitycenter resource-idandroid:id/button2 看到继续安装与代码里定义的 button4 android:id/button1 冲突了 所以每次都是先点的拒绝miui9.2 里 拒绝是 android:id/button1。。。。。 同属性单个元素返回单个坐标元组
button_list:常见的确认,同意,按钮控件idbutton0 com.android.packageinstaller:id/ok_button
button1 com.android.packageinstaller:id/btn_allow_once
button2 com.android.packageinstaller:id/bottom_button_two
button3 com.android.packageinstaller:id/btn_continue_install
#追加的miui9.2系统 继续安装的packagecom.miui.securitycenter resource-idandroid:id/button2
#这么写没过先放这儿 button4 com.miui.securitycenter:id/android:id/button2
#button4 android:id/button1与miui9.2 securitycenter权限安装 继续安装冲突 改为android:id/button2
button4 android:id/button2
button5 vivo:id/vivo_adb_install_ok_button
button_list [button0, button1, button2, button3, button4, button5]改后完美识别了 miui9.2 的权限安装弹窗
这种方式的 原理 我看了下 是抓取整个界面的 xml 类似 appium 里或 appcrawler 里 getpageresource 然后解析该元素 xml 找到对应的元素操作之。 比其他 appium 找权限弹窗的方案好许多。
附上相关代码:
def main(self):开启多线程:线程1:安装应用线程2:获取当前页面是否有可点击的按钮:return:ini U.ConfigIni()install_file ini.get_ini(test_install_path, path)package_name ini.get_ini(test_package_name, package_name)threads []click_button threading.Thread(targetself.tap_all, args())threads.append(click_button)install_app threading.Thread(targetself.__install_app, args(package_name, install_file))threads.append(install_app)process_list range(len(threads))for i in process_list:threads[i].start()for i in process_list:threads[i].join()self.adb.shell(rm -r /data/local/tmp/*.xml)U.l()
def __element(self):同属性单个元素返回单个坐标元组button_list:常见的确认,同意,按钮控件idbutton0 com.android.packageinstaller:id/ok_buttonbutton1 com.android.packageinstaller:id/btn_allow_oncebutton2 com.android.packageinstaller:id/bottom_button_twobutton3 com.android.packageinstaller:id/btn_continue_install#追加的miui9.2系统 继续安装的packagecom.miui.securitycenter resource-idandroid:id/button2 button4 com.miui.securitycenter:id/android:id/button2#button4 android:id/button1与miui9.2 securitycenter权限安装 继续安装冲突 改为android:id/button2button4 android:id/button2button5 vivo:id/vivo_adb_install_ok_buttonbutton_list [button0, button1, button2, button3, button4, button5]self.__uidump()self.pattern re.compile(r\d)if not os.path.exists(self.all_result_path /dump.xml):U.Logging.warn(Failed to get xml)return Nonetree ET.ElementTree(fileself.all_result_path /dump.xml)tree_iter tree.iter(tagnode)for elem in tree_iter:if elem.attrib[resource-id] in button_list:bounds elem.attrib[bounds]coord self.pattern.findall(bounds)x_point (int(coord[2]) - int(coord[0])) / 2.0 int(coord[0])y_point (int(coord[3]) - int(coord[1])) / 2.0 int(coord[1])return x_point, y_pointelse:return Nonedef tap(self):点击动作:return:coordinate_points self.__element()if coordinate_points is not None:self.adb.touch_by_element(coordinate_points)def tap_all(self):不间断获取xml,并且点击。配合多线程使用:return:while True:self.tap()if not self.queue.empty():break安装 APP 的时候 那个 main 启动了两个线程一个安装负责安装 apk 同时另一个监控先捕获当前安装界面的元素对象树 xml 然后循环去判断是否有元素在__element 定义中 有的话 就点击。
这个方案 也是捆绑在安装过程中的, 我还是想要那种 不管是安装过程中 还是 apk 在跑流程用例的过程中 莫名出来的都能捕获 。 不过可以用这个思路 去改改 。 作为一位过来人也是希望大家少走一些弯路
在这里我给大家分享一些自动化测试前进之路的必须品希望能对你带来帮助。
WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等
相信能使你更好的进步
点击下方小卡片