zoukankan      html  css  js  c++  java
  • 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自动化怎么这么多坑啊!!!!后续会不断的进行更新,不断的入坑。

  • 相关阅读:
    android获取sd卡路径方法
    Log4Net的使用
    asp.net网站发布
    用网站(WebSite而不是WebProject)项目构建ASP.NET MVC网站
    Asp.Net MVC 路由
    面试题:两个栈模拟队列&&两个队列模拟栈
    TextBlob Quick Start
    链表基本操作题
    leetcode341 扁平化嵌套数组
    细说浏览器输入URL后发生了什么
  • 原文地址:https://www.cnblogs.com/cuitang/p/11082580.html
Copyright © 2011-2022 走看看