• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

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

武飞扬头像
风起帆扬了
帮助1

目录

本文涵盖内容:

前期准备:

PO模式

计算器页面:

Pytest的fixture特性

Calculator目录下的conftest.py

具体的两个计算器用例

总结:


本文涵盖内容:

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

前期准备:

  1. cd appium\sample-code\python
  2. 创建文件夹 mkdir calculator
  3. cd calculator
  4. 创建pages和cases文件夹
  5. 拷贝文件
    • cp appium\sample-code\python\test\conftest.py conftest.py
    • cp appium\sample-code\python\test\helpers.py helpers.py
    • cd cases && mkdir officialexams && cp appium\sample-code\python\test\test_android_basic_interactions.py officialexams\test_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. 测试用例文件中重复代码较多,有待更进一步封装

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhggbfje
系列文章
更多 icon
同类精品
更多 icon
继续加载