免费的网站或软件,江西网站建设技术,百度网站收入提交,帝国cms做中英文网站我们在做app自动化的时候#xff0c;若要考虑兼容性问题#xff0c;需要跑几台设备#xff0c;要是一台一台的跑比较耗时#xff0c;因此需要考虑使用多线程来同时操作多台设备。
1.我们拿两台设备来模拟操作下#xff0c;使用#xff1a;adb devices查看连接状况#…我们在做app自动化的时候若要考虑兼容性问题需要跑几台设备要是一台一台的跑比较耗时因此需要考虑使用多线程来同时操作多台设备。
1.我们拿两台设备来模拟操作下使用adb devices查看连接状况获取到设备名称。 2.获取需要操作app的包名和页面名称前提该设备已经打开了app 3.设置初始配置信息 from appium import webdriver
import threading# 设备一
def run_01():desired {platformName: Android, # 手机系统platformVersion: 7.1.2, # 手机系统版本deviceName: 127.0.0.1:62001, # 连接的设备adb devicesautomationName: UiAutomator2,appPackage: , # app包名appActivity: , # app的启动页面autoGrantPermissions: true, # 默认允许app获取相关权限noReset: True # 保留登录模式}driver_01 webdriver.Remote(command_executorhttp://127.0.0.1:4723/wd/hub, desired_capabilitiesdesired)# driver(driver_01)# 设备二
def run_02():desired {platformName: Android, # 手机系统platformVersion: 11, # 手机系统版本deviceName: 90bf8faf, # 连接的设备adb devicesautomationName: UiAutomator2, # 自动化测试框架 1.4以上的appium不用写appPackage: , # app包名appActivity: , # app的启动页面autoGrantPermissions: true, # 默认允许app获取相关权限noReset: True # 保留登录模式}driver_02 webdriver.Remote(command_executorhttp://127.0.0.1:4720/wd/hub, desired_capabilitiesdesired)# driver(driver_02)不同的设备启动配置端口号是不一样的我这里一个是4723一个是4720.
4.打开页面后操作元素这里只简单的关闭页面(具体方法可参考https://www.cnblogs.com/lihongtaoya/p/16988855.html)
def driver(drivers): # 元素操作方法time.sleep(5)drivers.quit()
5.使用多线程运行多台设备
if __name__ __main__:threading.Thread(targetrun_01).start()threading.Thread(targetrun_02).start()
6.启动appium服务
启动指令appium --allow-cors -p 端口号 -U 设备名称 我这边是两台设备因此需要启动两个服务启动完之后就可以运行main函数了。
7.以上实例是将配置信息写在了代码中若是有十几二十几台设备的话这种写法有点麻烦我们可以将配置信息的产生封装在json文件中使用时用load()方法去取参数即可。
1创建一个json文件存放配置信息
[{url: http://127.0.0.1:4723/wd/hub,desired: {platformName: Android,platformVersion: 7.1.2,deviceName: 127.0.0.1:62001,automationName: UiAutomator2,appPackage: ,appActivity: ,autoGrantPermissions: true,noReset: true}}, {url: http://127.0.0.1:4720/wd/hub,desired:{platformName: Android,platformVersion: 11,deviceName: 90bf8faf,automationName: UiAutomator2,appPackage: ,appActivity: ,autoGrantPermissions: true,noReset: true}}]
2读取配置信息这里直接贴完整代码了。
def test_run(url, desired):driver_02 webdriver.Remote(command_executorurl, desired_capabilitiesdesired)driver(driver_02)def driver(drivers): # 元素操作方法time.sleep(5)drivers.quit()if __name__ __main__:with open(./appium.json, moder, encodingutf-8) as f:data list(json.load(f))for i in range(0, len(data)):a threading.Thread(targettest_run, args(data[i][url], data[i][desired]))a.start()
同时在这我准备了一份软件测试视频教程含接口、自动化、性能等需要的可以直接在下方观看或者直接关注VX公众号互联网杂货铺免费领取
软件测试视频教程观看处 字节大佬教你逼自己如何在15天内掌握自动化测试接口自动化/APP自动化/Web自动化/性能测试内含项目实战 技术上的一点帮助
PS这里分享一套软件测试的自学教程合集。对于在测试行业发展的小伙伴们来说应该会很有帮助。除了基础入门的资源博主也收集不少进阶自动化的资源从理论到实战知行合一才能真正的掌握。全套内容已经打包到网盘内容总量接近500个G。如需要软件测试学习资料关注公众号互联网杂货铺后台回复1整理不易给个关注点个赞吧谢谢各位大佬
☑ 240集-零基础到精通全套视频课程 ☑ [课件源码]-完整配套的教程 ☑ 18套-测试实战项目源码 ☑ 37套-测试工具软件包 ☑ 268道-真实面试题 ☑ 200个模板-面试简历模板、测试方案模板、软件测试报告模板、测试分析模版、测试计划模板、性能测试报告、性能测试报告、性能测试脚本用例模板信息完整 这些资料对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你凡事要趁早特别是技术行业一定要提升技术功底。