airtest/poco+pytest+allure+jenkins框架来了

如果这些内容对你有帮助,也可以打开微信扫一扫,加关注:

airtest/poco+pytest+allure+jenkins框架来了_第1张图片

    好多朋友在问前几篇文章的poco+pytest+allure框架源码在哪可以Get到,接下来将分几篇文章来让你看看此框架的全部内容。这里我将它取名为pocoFastTest。其中包括了自己的设计思路、源码解析和一些diy扩展的想法。最后还贴出了你最想看到的货真价实的源码,注意是.py文件完整版。

    一、文件结构。首先先看下整个框架文件结构,后面你可以根据这个结构,自己Get到py文件去组织这个测试框架。

airtest/poco+pytest+allure+jenkins框架来了_第2张图片

    二、文件结构说明:

    这里使用常用的QQ音乐为例编写了我的模块和喜欢模块用例,框架中代码是可以直接运行的,注意相关插件和QQ音乐版本。

    qq音乐:V10.13.6

    pytest:5.4.1

    allure:allure-commandline-2.12.1

    其他相关插件见requirements.txt文件中,使用pip命令直接安装全部的插件即可。pip install -r requirements.txt

    三、框架使用前提

    1.python版本:V3.6.5

    2.已经使用pip install -r requirements.txt安装所有python包,requirements.txt文件内容见文末。

    3.已安装allure-commandline-2.12.1,并配置了环境变量

    4.在/pocoAirTest/utils/globalSetting.py文件中已经修改对应配置信息:packageName/homePageActivity/loginQQNumber/loginQQPassword

    5.执行main.py方法即可执行当前框架下全部用例。具体执行方式见后续文章解析。

requirements.txt文件内容:

adbutils==0.9.1airtest==1.2.0allure-pytest==2.8.12allure-python-commons==2.8.12apipkg==1.5apkutils2==1.0.0appdirs==1.4.4atomicwrites==1.3.0attrdict==2.0.1attrs==19.3.0cached-property==1.5.2certifi==2020.12.5chardet==4.0.0cigam==0.0.3click==7.1.2colorama==0.4.4comtypes==1.1.7decorator==4.4.2Deprecated==1.2.11deprecation==2.1.0distlib==0.3.1execnet==1.7.1facebook-wda==1.3.4filelock==3.0.12hrpc==1.0.8idna==2.10importlib-metadata==1.5.0importlib-resources==5.1.2iniconfig==1.0.1itsdangerous==1.1.0Jinja2==2.11.2logzero==1.6.3lxml==4.6.2MarkupSafe==1.1.1more-itertools==8.2.0mss==4.0.3numpy==1.19.2olefile==0.46opencv-contrib-python==3.4.2.17packaging==20.3Pillow==4.0.0pluggy==0.13.1pocoui==1.0.82progress==1.5py==1.10.0pyelftools==0.27pyparsing==2.4.6pypiwin32==223pytest==6.0.2pytest-forked==1.3.0pytest-ordering==0.6pytest-rerunfailures==9.1pytest-xdist==2.1.0python-dotenv==0.15.0pywin32==300pywinauto==0.6.3requests==2.25.1retry==0.9.2six==1.15.0tablib==3.0.0toml==0.10.1tornado==6.1uiautomator2==2.13.0urllib3==1.26.3virtualenv==20.4.6wcwidth==0.1.8websocket-client==0.48.0weditor==0.6.4Werkzeug==1.0.1whichcraft==0.6.1wrapt==1.12.1xlrd==2.0.1xlutils==2.0.0xlwt==1.3.0xmltodict==0.12.0zipp==3.1.0

四、框架设计的一些想法

1.采用pageobject模式,做了3层封装,

    1层:页面基类(如pocoAirTest.pageobjects.basePage.py);

    2层:业务层(如pocoAirTest.pageobjects.my.myPage.py);

    3层:用例层(如pocoAirTest.testcase.test_suite1.test_case.py)

2.编写用例必须放在testcase目录下对应测试集目录下,注意用例的py文件名以test_开头,py文件中类已Test开头,类中测试用例方法名已test_开头

3.每条用例test_的编写,必须执行完业务后,加断言做正确性判断,断言失败的给出失败截图,调用方法:sendSnapshotToAllure()即可。

4.对于poco中如果无法使用定位处理的,需要借助airtest截图的部分,可以按如下步骤进行:

A.在airtestIDE中创建.air文件,写好操作步骤后切换到代码方式,复制所有操作的代码

B.帖到此框架中需要实现的步骤上,用如下方式:

using('test.air')
swipe(Template(r"tpl1625473088389.png", record_pos=(0.12, 0.639), resolution=(1440, 2560)), vector=[-0.0493,-0.477])
touch(Template(r"tpl1625473129860.png", record_pos=(-0.361, -0.085), resolution=(1440, 2560)))
C.然后把截图和对应.air文件一块复制到当前poco方式的业务层.py文件所在目录下。可参考myPage_Like.py中的pocoairDemo方法。


      airtest/poco+pytest+allure+jenkins框架来了_第3张图片airtest/poco+pytest+allure+jenkins框架来了_第4张图片airtest/poco+pytest+allure+jenkins框架来了_第5张图片重点来了!!

下来发布下后续针对源码及分析的文章目录。有需要的朋友请持续关注哈。

  1. 搞定入口方法main及用例mark-main.py/pytest.ini

  2. 搞定全局fixture(newpoco)-conftest.py

  3. 页面对象层pageobject可以这么写-basePage.pymyPage.py...

  4. 用例层testcase可以这么写-test_my_like.py

  5. 工具类及全局参数设置在这里-util.py/globalSetting.py

  6. 无法poco定位想用airtest怎么办-test_pocoAirtest.py

  7. 结合jenkins自动执行用例及allure报告配置

        以上这些内容请持续关注公众号~~~

友情提醒:使用本框架的前提是默认您已经会使用airtest/poco项目及pytest、allure等框架。如果还不熟悉的朋友可以先阅读下本公众号下相关文章哈。

Airtest/poco自动化测试

python自动化测试

图片

条条道路通罗马,用对方法事半功倍!

#####欢迎加好友交流切磋####

QQ:464314378

微信群请先加群主微信,群主会拉各位小伙伴进群,注意添加备注。

airtest/poco+pytest+allure+jenkins框架来了_第6张图片

你可能感兴趣的:(Airtest,自动化测试,测试工程师)