栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Appium--小例子学习pytest+appium+allure自动化框架

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Appium--小例子学习pytest+appium+allure自动化框架

目录

本文涵盖内容:

前期准备:

PO模式

计算器页面:

Pytest的fixture特性

Calculator目录下的conftest.py

具体的两个计算器用例

总结:


本文涵盖内容:
  1. PO模式设计
  2. allure装饰器及报告
  3. 运行用例截图(成功失败均截图,通过try except finally)
  4. 数据驱动

前期准备:
  1. cd appiumsample-codepython
  2. 创建文件夹 mkdir calculator
  3. cd calculator
  4. 创建pages和cases文件夹
  5. 拷贝文件
    • cp appiumsample-codepythontestconftest.py conftest.py
    • cp appiumsample-codepythontesthelpers.py helpers.py
    • cd cases && mkdir officialexams && cp appiumsample-codepythontesttest_android_basic_interactions.py officialexamstest_android_basic_interactions.py

完整目录结构如下

PO模式
  • 参考链接

简单点就是元素定位和数据断言分离(个人理解),driver通过pytest.fixture初始化

创建一个basepage.py,用来元素定位,具体内容如下图(按照自己所需添加元素定位)

计算器页面:
  1. 具体按钮的定位方法(都是通过id可定位到)
  2. 通过数据驱动,模拟用户点击按钮。比如:test_input='1+2',就会点击按钮1,按钮加号,按钮2

Pytest的fixture特性
  1. 想想如果将两个conftest中的scope改成class后会有什么区别

Calculator目录下的conftest.py
  1. 定义了一个driver
  2. 定义了一个locator, 主要用来调用元素定位的那些方法。

具体的两个计算器用例

执行
  1. λ pytest cases --alluredir .allure-report
  2. λ allure serve .allure-report

总结:
  1. fixture scope=class改成fuction后意味着每执行一次测试用例都要初始化一次
  2. 没有想到更好的方式去命名截图,pytest.mark.id的值暂没有找到获取方法
  3. 测试用例文件中重复代码较多,有待更进一步封装

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/858656.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号