您的位置:首页 > 教育 > 培训 > 为啥开发app不建议uniapp_承德网站制作公司哪家好_自媒体有哪些平台_短视频培训学校

为啥开发app不建议uniapp_承德网站制作公司哪家好_自媒体有哪些平台_短视频培训学校

2024/12/23 18:01:54 来源:https://blog.csdn.net/cs888zsy/article/details/144568678  浏览:    关键词:为啥开发app不建议uniapp_承德网站制作公司哪家好_自媒体有哪些平台_短视频培训学校
为啥开发app不建议uniapp_承德网站制作公司哪家好_自媒体有哪些平台_短视频培训学校

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快

我们在做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 devices)"automationName": "UiAutomator2","appPackage": "",  # app包名"appActivity": "",  # app的启动页面"autoGrantPermissions": "true",  # 默认允许app获取相关权限"noReset": True  # 保留登录模式}driver_01 = webdriver.Remote(command_executor="http://127.0.0.1:4723/wd/hub", desired_capabilities=desired)# driver(driver_01)# 设备二
def run_02():desired = {"platformName": "Android",  # 手机系统"platformVersion": "11",  # 手机系统版本"deviceName": '90bf8faf',  # 连接的设备(adb devices)"automationName": "UiAutomator2",  # 自动化测试框架 (1.4以上的appium不用写)"appPackage": "",  # app包名"appActivity": "",  # app的启动页面"autoGrantPermissions": "true",  # 默认允许app获取相关权限"noReset": True  # 保留登录模式}driver_02 = webdriver.Remote(command_executor="http://127.0.0.1:4720/wd/hub", desired_capabilities=desired)# 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(target=run_01).start()threading.Thread(target=run_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_executor=url, desired_capabilities=desired)driver(driver_02)def driver(drivers):  # 元素操作方法time.sleep(5)drivers.quit()if __name__ == '__main__':with open("./appium.json", mode="r", encoding="utf-8") as f:data = list(json.load(f))for i in range(0, len(data)):a = threading.Thread(target=test_run, args=(data[i]["url"], data[i]["desired"]))a.start()

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com