zoukankan      html  css  js  c++  java
  • python自动化:通过uiautomator2实现云测

    该代码还存在优化的地方,后续优化方向:结合unittest、ddt、内反射搭建自动化测试框架

    实现代码如下:

    #通过u2实现云测
    import threading
    import uiautomator2 as u2
    import os,time
    from xctest_app.xc_tools.get_screenshot import *
    from xctest_app.xc_tools.get_aapt import *
    from xctest_app.xc_tools.get_devices import *
    class u2test:
        #设备的连接、软件的安装等前置操作
        def get_aapp(self,udid,path,pack_name):
            self.d=u2.connect(udid)
            os.system(f'adb -s {udid} install -r {path}')
            time.sleep(3)
            self.d.app_start(pack_name)
            s=self.d.session(pack_name,'True')
            return s
        #app中元素点击、断言等操作
        def get_capp(self,s):
            s.implicitly_wait(200)
            s.xpath('//*[@text="我"]').click()
            s.xpath('//*[@text="登录/注册"]').click()
            s.xpath('//android.widget.ListView/android.view.View[2]').click()
            s.xpath('//*[@resource-id="account"]').click()
            s.send_keys("13524490259", clear=True)
            s.xpath('//*[@resource-id="password"]').click()
            s.send_keys("123456", clear=True)
            s.xpath('//*[@resource-id="btn"]').click()
            s.xpath('//*[@text="我"]').click()
            r = s(text='13524490259').get_text()
            if r == '13524490259':
                print('登陆成功')
            else:
                print('登陆失败')
            #截图
            screenshot().get_ss(s)
        #总操作
        def get_appapp(self,udid,path,pack_name):
            s=self.get_aapp(udid,path,pack_name)
            self.get_capp(s)
            os.system(f'adb -s {udid} uninstall {pack_name}')
    
    if __name__ == '__main__':
        a=u2test()
        #调用封装的方法获取设备的udid
        b=devices().get_devices()
        #用封装的方法获取app的主包名
        c=packagename_activity().get_packagename('./xc_apk/wangyiyunyinyue.apk')[0]
        for i in b:
            threading.Thread(target=u2test().get_appapp,args=(i,'./xc_apk/wangyiyunyinyue.apk',c)).start()
  • 相关阅读:
    vim 使用总结
    C语言中的条件编译
    getopt函数
    Linux 命令使用总结
    vim ctags cscope
    shell 定时处理
    shell 脚本中的标准输出
    ubuntu mail 命令发送邮件
    shell 编程中的特殊字符的处理
    system v 消息队列
  • 原文地址:https://www.cnblogs.com/badbadboyyx/p/12132441.html
Copyright © 2011-2022 走看看