测试之家
  • Topics
  • QA
  • 招聘
  • 社区学堂新
  • 开源项目
  • 活动
  • Wiki
  • Sign Up
  • Sign In
会员
strayeagle
第 1386 位Users / 2014-08-10
16 篇帖子 • 54 条回帖
8 关注者
1 正在关注
13 收藏
https://gavin-wang-note.github.io
未设置 GitHub 信息.
  • 个人信息
  • 专栏
  • 话题
  • 回帖
  • 收藏
  • 关注中
  • 关注者
  • 【已解决】大家用什么工具写 web 端用例,来实现 web 端推送数据到 app,使得 app 和 web 端结合起来共同完成一个完整的用例的执行 at October 28, 2014

    #2 楼 @monkey 后台直接推送到 app,只能说是准实时吧,稍微有点延迟(信息从推送到 app 端展示,延迟时间比较短,几秒内)

  • 【已解决】想使用 swipe 实现滑动效果,实际结果是先点击,然后滑动,但 app 界面却没有滑动 at October 27, 2014

    #4 楼 @xiang2743 哇,感谢感谢!

  • Appium 最新版本 1.3.1 下载不下来啊,有谁能分享下啊? at October 27, 2014

    如果是 windows 环境,dos 中执行 npm install -g appium 命令,直接安装最新的版本

  • 【已解决】想使用 swipe 实现滑动效果,实际结果是先点击,然后滑动,但 app 界面却没有滑动 at October 24, 2014

    #1 楼 @sanlengjingvv 非常的感谢,指针轨迹是开了的,是持续时间太短了,导致没效果,感谢啊!

  • 求助:Could not find adb in tools, platform-tools at October 23, 2014

    #4 楼 @lilycalla 6 楼正解,下载后,如果报找不到文件,你将 sdk\build-tools\android-X.X 目录下文件拷贝过去就行

  • 求助:Could not find adb in tools, platform-tools at October 23, 2014

    将 sdk\build-tools\android-4.4W 目录下的 aapt.exe 拷贝到 sdk\tools 目录下

    将 sdk\build-tools\android-4.4W 目录下的 zipalign.exe 拷贝到 sdk\tools 目录下

  • 【问题解决】用例执行过程中 app 界面发生切换,desired_caps 中 activity 该如何设置才能满足用例执行过程中 app 在不同界面所需要的、匹配的 activity? at October 22, 2014

    有一些应用,在首次安装后启动会有一个引导页,浏览完引导页后才会跳转到登录或者注册页面,再次启动时根据引导页直接打开登录或登录后的主界面,所以首次安装并启动的 Activity 和直接打开登录主页面的 Activity 不一样,需要在 desired_caps 中增加 appWaitActivity,为你想要等待启动的 Android Activity 名称,即引导 activity 后面增加期待使用的 activity,app 界面就可以正常跳转。

  • 【问题解决】用例执行过程中 app 界面发生切换,desired_caps 中 activity 该如何设置才能满足用例执行过程中 app 在不同界面所需要的、匹配的 activity? at October 21, 2014

    #10 楼 @umbrella1978 用例中是同一个 app 的:
    用例 1 是卸载这个 app;
    用例 2 是安装这个 app;
    用例 3 是检查用例 2 中安装的 app 登录界面上是否有 pwoerer-by 信息;
    用例 4 是登录 app,这个登录依赖的是用例 2 中安装好的 app;
    用例 5 是在用例 4 成功登录进入主界面的基础上,去检查这个主界面的侧标栏是否有 powerer-by 信息

  • 【问题解决】用例执行过程中 app 界面发生切换,desired_caps 中 activity 该如何设置才能满足用例执行过程中 app 在不同界面所需要的、匹配的 activity? at October 21, 2014

    #7 楼 @sanlengjingvv driver 方法里面没有 start_activity 啊,import 的时候我是 from appium import webdriver,请问你是导入的哪个包啊

  • 【已解决】用例登录成功后,在执行 tearDown 的时候(driver.quit)退出登录了,导致后面用例执行失败 at October 20, 2014

    #1 楼 @xiang2743 你的意思是在登录后,继续把其他的用例不单独写,而是写在这个登录用例的后面,teardown 前,共同完成一系列的动作吗?

  • [已解决] app-activity 问题 at October 15, 2014

    #5 楼 @seveniruby 请问一下,activity 在不同界面是不一样的,那在初始化的时候:

    def get_desired_capabilities(app):
        desired_caps = {
            'platformName': 'Android',
            'platformVersion': '4.3',
            'deviceName': 'Android Emulator',
            'appPackage' : 'com.xxx.phone',
            'appActivity' : 'com.xxx.ui.FlowPager',
            'app': PATH(r'../testApp/' + app)
        }
    ,
        return desired_caps
    

    这里是写死的,岂不是从一个界面切换到另外一个界面的时候,appActivity 就不同了,用例执行就失败了啊,该如何界面这个问题呢?

  • 【问题解决】用例执行过程中 app 界面发生切换,desired_caps 中 activity 该如何设置才能满足用例执行过程中 app 在不同界面所需要的、匹配的 activity? at October 14, 2014

    #2 楼 @sanlengjingvv
    我的测试基类代码如下:(TestCaseBase.py)

    #!/usr/bin/env python
    #-*- coding:UTF-8 -*-
    
    import logging
    import unittest
    from common.stub.StubFactory import StubFactory
    
    import os
    from appium import webdriver
    from common.testCaseBase.getDriver import *
    
    
    class TestCaseBase(unittest.TestCase):
    
        def getDoc(self):
            '''获取用例 __doc__信息'''
            doc = super(TestCaseBase,self).shortDescription()
            return doc    
    
        def setUp(self):
            # 启动所有的测试桩,主要是配置文件的解析、路径解析等
            StubFactory().start()
    
            #初始化driver
            self.driver = getDriverInfo().androidDriverInfo()
    
            logging.info("\n============= Begin to test [ " + self.getDoc() + " ] ===============\n")
    
        def tearDown(self):
            # 停止所有的测试桩
            StubFactory().stop()
    
            self.driver.quit()
    
            logging.info("\n============= End to test [ " + self.getDoc() + " ] ===============\n")
    

    对于初始化 deriver 信息,我调用了另外一个类的信息:
    这个类 getDriverInfo 中的 androidDriverInfo 方法,如下:

    class getDriverInfo():
        '''   获取driver属性信息的类     '''
    
        def androidDriverInfo(self):
            '''  定义获取driver属性信息的函数--安卓     '''
    
            desired_caps = desired_capabilities.get_desired_capabilities('Base_2.1.apk')
            #print desired_caps
            #del desired_caps['app']
    
            driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
    
            return driver        
    

    而 desired_capabilities 调用的方法 get_desired_capabilities 代码如下:

    def get_desired_capabilities(app):
        desired_caps = {
            'platformName': 'Android',
            'platformVersion': '4.3',
            'deviceName': 'Android Emulator',
            'appPackage' : 'com.xxx.phone',
            'appActivity' : 'com.xxx.ui.FlowPager',
            'app': PATH(r'../testApp/' + app)
        }
    
        return desired_caps
    
  • 【问题解决】用例执行过程中 app 界面发生切换,desired_caps 中 activity 该如何设置才能满足用例执行过程中 app 在不同界面所需要的、匹配的 activity? at October 13, 2014

    #2 楼 @sanlengjingvv 请问 driver 不是只要初始化一次嘛?设置一个全局的 driver,所有用例都使用这个 driver 属性信息

  • 脚本在 4.4 运行成功,但在 4.1 上运行提示 appPackage/appActivity never started at October 09, 2014

    @panzhigang 我也遇见了,
    我发的帖子,http://testerhome.com/topics/1455
    楼主这个问题解决了吗?

  • [已解决] 真机已安装 app,不要每次都重新安装 apk ,如何执行其他用例时能获取到 driver 属性信息 at October 08, 2014

    @mongnet
    desired_capabilities 类内容如下:

    #!/usr/bin/env python
    #-*- coding:UTF-8 -*-
    
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #     http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    
    import os
    
    # Returns abs path relative to this file and not cwd
    PATH = lambda p: os.path.abspath(
        os.path.join(os.path.dirname(__file__), p)
    )
    
    
    def get_desired_capabilities(app):
        desired_caps = {
            'platformName': 'Android',
            'platformVersion': '4.3',
            'deviceName': 'Android Emulator',
            'appPackage' : 'com.xxx.phone',
            'appActivity' : 'com.xxx.ui.FlowPager',
            'app': PATH(r'../testApp/' + app)
        }
    
        return desired_caps
    
    
    if __name__ =='__main__':
        app = get_desired_capabilities('testBase_2.1.apk')
        print app
    
    
    
  • appium 简明教程 (9)——如何获取 android app 的 Activity at October 08, 2014

    cmd 中直接执行 aapt dump badging app 的绝对路径,查找屏显信息中的 launchable-activity: name=,name=后面就是所要的 activity 信息了

  • [已解决] 真机已安装 app,不要每次都重新安装 apk ,如何执行其他用例时能获取到 driver 属性信息 at September 27, 2014

    原来的代码也可以使用,总之一句话,app 已安装,在不想每次执行用例都需要再次安装 app 的情况下,启动 appium 带上--no-reset 即可

  • [已解决] 真机已安装 app,不要每次都重新安装 apk ,如何执行其他用例时能获取到 driver 属性信息 at September 27, 2014

    在 阿里-sh-lihuazhang C-上海 - 西陆之风 @ 上海-L.T. 的帮助下,终于解决了这个问题

    from appium import webdriver
    from common.testCaseBase import desired_capabilities
    
    
    class getDriverInfo():
        '''   获取driver属性信息的类     '''
    
        def androidDriverInfo(self):
            '''  定义获取driver属性信息的函数--安卓     '''
    
            desired_caps = desired_capabilities.get_desired_capabilities('WeChat_480.apk')
    
            driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
            print '\n for test',driver,'\n'
            return driver
    
        def iOSDriverInfo(self):
            '''  定义安装app函数-iOS     '''
            pass
    
    
    if __name__ == '__main__':
        driverInfo = getDriverInfo()
        driver = driverInfo.androidDriverInfo()
    

    如上代码调用的时候,安装 app,如果 app 已经安装了,在不想安装 app 的情况下, 可通过 dos 窗口,通过启动 appium 带上 --no-reset 即可避免执行用例的时候再次安装 app
    --no-reset 参数解释 如下:
    --no-reset Don't reset app state between sessions (IOS: don't
    delete app plist files; Android: don't uninstall app
    before new session)

    如上解释可通过 dos 窗口执行 appium --no-reset -h 获得

  • [已解决] 真机已安装 app,不要每次都重新安装 apk ,如何执行其他用例时能获取到 driver 属性信息 at September 26, 2014

    #4 楼 @luis 关键是不知道如何获取这个全局的 driver 啊

  • [已解决] 真机已安装 app,不要每次都重新安装 apk ,如何执行其他用例时能获取到 driver 属性信息 at September 26, 2014

    #1 楼 @lihuazhang 是的,执行下个用例,就不用再需要安装 app,直接使用 driver 属性信息

  • 【已解决】请教,desired_caps['app']怎么填写? at September 25, 2014

    请问你是如何解决的?我把 desired_caps['app'] = '' 注释掉,还是一样的错误啊,我也是想直接调用 driver 的一些属性,不需要执行下个用例的时候再次去安装 app,请看见了答复我一下啊,多谢多谢!!

  • adb devices offline 解决策略大集合 at September 25, 2014

    很多手机助手类的软件(比如 91 助手、360、豌豆荚之类)如果已经启动了,这个时候 adb 去查看 device,往往是处于 offline 状态,如果杀掉这些软件,就可以正常了。我遇见的是这么个情况,每个人遇见的环境不同,仅供参考。

  • 【已解决】通过 find_element_by_id 获取了 button 的 id,为何 click 操作没效果? at September 12, 2014

    问题定位出来了,在最后一个 send_key() 后,输入法没有隐藏/消失,导致后面获取登录 button 虽然成功,但 click 失败。解决问题的思路也得到群里的大力支持,总的方向是隐藏输入法,我这里使用了 back() 方法(因为 from selenium import webdriver),模拟返回操作,使得输入法自动隐藏,修改后如下:

    company = driver.find_element_by_id('xxxxxx:id/login_domain_editor')
    company.click()
    company.send_keys(r'xxxx')
    #模拟返回键,隐藏输入法
    driver.back()
    
    
    loginButton = driver.find_element_by_id('xxxxxxx:id/login_btn')
    driver.implicitly_wait(5)
    loginButton.click()
    

    也可以使用 hide_keyboard 方法,群里给的建议是 from appium import webdriver,毕竟是测试 app 的,这里我抛下砖,后面我改进,使用 appium 的方法

  • 【已解决】通过 find_element_by_id 获取了 button 的 id,为何 click 操作没效果? at September 11, 2014

    使用 find_element_by_class_name 也是一样的效果,无法触发点击操作:
    button = driver.find_element_by_class_name('android.widget.Button')
    driver.implicitly_wait(5)
    button.click()
    期间暂停了 5 秒也没用

  • 【已解决】通过 find_element_by_id 获取了 button 的 id,为何 click 操作没效果? at September 11, 2014

    我补充一下环境:是安卓 4.3,手机 app 程序

  • Prev
  • 1
  • 2
  • 3
  • Next
  • 关于 / 活跃用户 / 中国移动互联网测试技术大会 / 反馈 / Github / API / 帮助推广
    TesterHome社区,测试之家,由众多测试工程师组织和维护的技术社区,致力于帮助新人成长,提高测试地位,推进质量发展。Inspired by RubyChina
    友情链接 WeTest腾讯质量开放平台 / InfoQ / 掘金 / SegmentFault / 测试窝 / 百度测试吧 / IT大咖说
    简体中文 / 正體中文 / English

    ©testerhome.com 测试之家   渝ICP备2022001292号
      渝公网安备 50022202000435号    版权所有 © 重庆年云聚力信息技术有限公司