appium---多进程启动app(多设备启动app)

  上一篇简单的介绍了如何通过多线程进行启动app,但是后面发现了一个问题,就是app操作必须要等到一台结束后,下一台才能进行任务,那么有没有办法让他们同时运行呢?这个时候我们可以了解下多进程。跳转门:appium---多线程启动app(多台设备启动app)

进程和线程的区别

线程:计算机的执行单位以线程为单位。计算机的最小可执行是线程。。线程是可执行的基本单位,是可被调度的基本单位。线程不可以自己独立拥有资源。线程的执行,必须依赖于所属进程中的资源。。

进程:进程是资源分配的基本单位,进程中必须至少应该有一个线程

多进程启动app

继续上一篇文章的内容,多进程启动app,在以前的代码基础上进行修改线程部分

通过把启动appium的方法通过多进程的方法进行启动。

def main(self):
        ‘‘‘多进程启动‘‘‘
        multi_list = []
        for i in range(2):
            appium_server = multiprocessing.Process(target=self.get_commad)
            multi_list.append(appium_server)
        for j in multi_list:
            j.start()
        for j in multi_list:
            j.join()

测试用例

上面通过多进程的方法进行了实现了同事启动appium,但是如果想要继续启动webdriver服务,这里安静选择了多线程启动。

# coding:utf-8
from pages.login_page import LoginPage
import time
import os
import threading
import multiprocessing
from common.aa import Server
path  =os.path.dirname(os.getcwd())
# 获取到yaml文件路径
yaml_path = os.path.join(os.path.join(path,config),element.yaml)
class BaseDriver:
    def login(self,driver):
        page =LoginPage(driver)
        time.sleep(8)
        # 获取用户名元素以及输入内容
        use = page.get_username_element(yaml_path)
        use.send_keys(1111)
        # 获取密码元素以及输入内容
        pas = page.get_password_element(yaml_path)
        pas.send_keys(22222)
        # 进行点击登录
        button = page.get_login_button_element(yaml_path)
        button.click()

if __name__ == __main__:
    x = BaseDriver()
    server = Server()
    dev = Server().get_driver()
    t1 = threading.Thread(target=server.main)
    t1.start()
    time.sleep(10)
    aa = []
    for i in dev:
        devices = server.android_start(i)
        t2 = threading.Thread(target=x.login,args=(devices,))
        aa.append(t2)
    for j in aa:
        j.start()

这里有安静执行的结果,动图有点长。

appium---多进程启动app(多设备启动app)

 

 

安静可能对线程和进程不是很懂的理解,然后写出来这么low的代码,希望有哪位大神看到了,多多指点,共同学习~

appium---多进程启动app(多设备启动app)

上一篇:对阿里云飞天计划使用的感悟


下一篇:uniapp之生成Android签名证书并云打包发布