1022Appium app自动化测试经验分享

终于在22号晚上基本调试大部分用例;

一)unittest单元测试框架的 用例跳过skip方法

在我最开始写脚本的时候,我就用的最简单、直接的方法-直接注释掉不想执行的用例;当时还在想用啥跳过用例的方法,不是纯属多余的嘛,直接注释掉,方便快捷。

然后莫名其妙的写了公司某app产品的基本所有功能点都有覆盖的一个自动化测试脚本,用例超过500条,执行时间超过5个小时。那一天整整12点开始跑脚本,跑到下班。那么得优化,还是要做成验证主要流程的脚本比较合适,那很多细节的用例是要注释掉吗?下次再要执行的时候,感觉弄起来好麻烦。

实践用起来skip方法了。@unittest.skip(reason):强制跳过。reason是跳转原因。

在昨天 突然想到,如果那些用例我再用起来,我每天这么设置的用例还得修改,在Pycharm可以使用CTRL + R替换掉,但是不简洁呀。

@unittest.skipIf(condition, reason):condition为True的时候跳过。
举例: @unittest.skipIf(True, ‘True 就跳过’)

但实际我是偏爱这样使用:

直接修改定义的变量ABCD和abcd的值,就可以实现用例跳过、不跳过的切换;

ABCD = 66
    abcd = 7
    @unittest.skipIf(ABCD > abcd, 'ABCD 大于 abcd 就可以跳过此用例')
    def test_00_a21(self):
    	pass

此外,提醒下:@uinttest.skip() @不能少。下面是错误的
在这里插入图片描述

二)Pycharm的insert状态、左侧的structure

1)PyCharm这个很重量级的Python IDE,我用着很顺手;昨天不小心按倒键盘的insert键,就切换了输入模式,感觉超级别扭,所以我就想起来之前学的:

Vim模式切换时候,正常模式==>插入模式 按 i 在光标前插入

2)
在这里插入图片描述

手残党 无意按到最左边的一侧,打开了项目的structure,此举简直就是神助攻啊。在我调试,实际跑某些用例的时候,习惯CTRL + F来搜索此用例的名字,来回切换用例所在位置和 最后的位置,如今发现了structure,就可以直接点击切换到某用例的位置,很方便的。

三) Appium-desktop 每次都安装setting和unlock

在执行用例的时候,如果不做设置,appium每次运行都需要安装Unlock以及AppiumSetting的,这个对我而言,是有些烦人的。

1是浪费时间,我之前跑一个不到100条的脚本,通过率95%的大概用时1个半小时,而现在一个125条左右,通过率65%的用时56分钟(很多时候是元素定位不到,在等待),每条用例跑的时候不安装,确实提高了效率。

2是如果选择修改了appium,有些新手机拿来跑脚本,有可能会失败。

3是网上一大把教程(请留意,appium和 Appium-desktop的设置目录和方法不同),我这要说的是 Appium-desktop:

进入appium的安装目录:(我本机的,不见得就是你电脑的)
C:\Users\admin\AppData\Local\Programs\appium-desktop\resources\app\node_modules\appium\node_modules\appium-android-driver

下面有2个文件夹的内容要更改:

appium-android-driver\lib android-helpers.js文件
appium-android-driver\build\lib android-helpers.js文件
(android-helpers.js文件 具体改法 请百度)

如果真的想换回之前未改的状态,可以先备份下未改的android-helpers.js文件,但是我更喜欢暴力些:直接卸载 重装。

apk作用说明:

1、Appium settings:用于设置网络状态

2、Unclock:用于自动解锁(使用场景:手机是滑动锁屏的情况下,则会自动解锁并启动apk,注意:图案锁屏与数字锁则不可以哦,只能是滑动锁屏)

四)测试脚本中 增加 一个 pass的测试用例

根据我的实际操作经验,跑某些用例失败后,想使用uiautomatorviewer 定位当前页面的元素,uiautomatorviewer会提醒你的设备不存在之类的;这个时候可以跑一下这个用例(或者直接一直开着这个用例):

    def tiaoshi(self):
        pass

主要是 让手机app成功退出,恢复正常状态,方便使用uiautomatorviewer定位。
当然还有一种暴力手段–直接拔掉数据线,重插。

猜你喜欢

转载自blog.csdn.net/zyooooxie/article/details/83277760