• python appium自动化,走过的坑


    使用的夜神模拟器,使用android5.1.1 或者真机

    第一个坑:使用的android7.1.2,刚开始写好了登录的代码,需要的是滑屏进入到登录界面,结果运行的时候,没有自动滑屏就报错;因为运行时,报了一个进程被另一个程序在使用,怀疑是这个原因,又改了在进行滑屏前强行等待了几秒,还是不行;截其他界面的元素,也经常报一个UI的错,百度说这个是android的问题,后来我改了夜神模拟器的版本5.1.1,运行正常,滑屏正常!

    第二个坑:自动化运行明明已经点击了元素,却提示找不到元素 (模拟器下)

    解决方案是:使用tap()坐标模拟点击屏幕

        :Args:
        
        - positions - list类型,里面对象是元组,最多五个。如:[(100, 20), (100, 60)]
        
        - duration - 持续时间,单位毫秒,如:500
    self.driver.tap([(949,1434),(1080,1592)],500)

    解决方案:使用真机运行代码,看能不能找到元素

    第三个:这个不算坑,是自己把之前知识,全部扔进盐水海了;这是就是在使用pytest命令执行的时候,提示“unrecognized arguments: --html=OutPut eport eport.html nofile:None”

    问题的根本:没有pytest-html模块,要用allure模块,记得要加allure-pytest

    解决方案:添加pytest-html模块 、allure模块

    命令:pip install allure-pytest  、pip install pytest-html

    第四个:有输入的地方,真机默认会弹出自带的键盘,这个键盘会遮挡住页面下方的元素,导致找不到元素

    解决方案:将默认弹出的键盘隐藏

    # unicode编码方式发送字符串
    desired_caps["unicodeKeyboard"] = "True"
    # resetKeyboard是将键盘隐藏起来

    desired_caps["resetKeyboard"] = "True"

    第五:编写了几个页面的测试用例,只想执行指定的测试用例,这里需要用到的pytest的mark,写一个执行的文件,使用命令执行,遇到的问题是在'm "login"'里面具体标记的用例又加了双引号,所以这里指定的mark没有生效,没有按照指定的用例执行

    解决方案:将里面的双引号去掉,如下图的正确写法

    第六:命令行执行pytest的测试用例,只有两个测试用例,实际执行了2*2,每个用例分别执行了两次,问题在于命令执行写了两个pytest.main(),将后面的pytest.main()去掉后,每个用例执行一次。

     

    第七:pytest用例的执行顺序,根据先搜索到的测试用例就先执行,如图:要先执行test_index的测试用例,就要加上01 ,先找到,先执行

    第八:今天遇到的一个大坑,纯粹自己坑自己,两个类一共写了5个测试用例,结果收集到33个,刚开始以为是前置条件导致的,检查过前置条件没问题,我就等这33用例执行完,看测试报告,结果都是一个测试用例执行了很多次,就到这个测试用例里面找问题,结果发现取参数数据的时,把一个数据按照字母一个个来取,导致多了28次。。。。

    造成这个问题的原因:错误的使用了pytest的参数化进行取数据,导致将一个数据,分成多份来取

    这个问题还可以知道:有多少测试用例,不止看项目中有几个测试用例,还要看测试用例用到几组测试数据

    #APP自动化怎么这么多坑啊!!!!后续会不断的进行更新,不断的入坑。

  • 相关阅读:
    查看python中SQLite版本和sqlite3版本
    ubuntu系统安装与卸载
    CentOS下如何使用yum查看安装过的软件包
    【linux】CentOS7 升级sqlite3
    什么是Python的metaclass
    Python
    Python对字典分别按键(key)和值(value)进行排序
    python 用正则表达式去除特殊字符的两种方法
    从思维导图中学习javascript第五章字符串函数
    从思维导图中学习javascript第三章数组
  • 原文地址:https://www.cnblogs.com/cuitang/p/11082580.html
Copyright © 2020-2023  润新知