本文将介绍一套比较完整的appium自动化框架,以python为编写脚本语言,是因为python有强大的库,同时易学易懂。

最终的测试框架代码,将在jenkins项目中一键构建,执行自动化测试用例,并输出展现形式丰富的测试报告。

appium及python的环境,自行安装和配置,本人使用pycharam进行自动化开发。

一、安装nose及依赖库

  • pip install nose
  • pip install nose-allure-plugin
  • pip install nose-html-reporting
  • pip install nose-ittr
  • pip install nosehtmlouput-2

二、安装allure及依赖库

  • pip install allure-behave
  • pip install allure-python-commons

三、编写测试用例

import unittest
import nose
from nose.tools import *
import logging
from page.common.tab_bar_page import TabBarPage
from page.video.video_tab_bar_page import VideoTabBarPage
from common.common_operate import * class TestVideoTabBar(unittest.TestCase):
log = logging.getLogger(__name__) @classmethod
def setUpClass(cls):
cls.tab_bar = TabBarPage()
cls.tab_bar.click_vedio_tab_bar()
cls.video_tab_bar = VideoTabBarPage() def setUp(cls):
pass # 点击视频文章标题
@nose.allure.feature('视频Tab')
@nose.allure.story('点击标题-查看视频文章')
def test_01_click_video_title(self):
try:
self.video_tab_bar.click_video_title(0)
assert_true(is_visibility(self.video_tab_bar.video_article_comments_btn_loc))
except TimeoutException as e:
take_screenShot(u"点击标题-查看视频文章'")
logging.error(e)
assert_false(True) # 点击视频预览图
@nose.allure.feature('视频Tab')
@nose.allure.story('点击视频预览图-查看视频文章')
def test_02_video_preview(self):
try:
self.video_tab_bar.click_video_preview(0)
assert_true(is_visibility(self.video_tab_bar.video_article_list_comments_btn_loc))
except TimeoutException as e:
take_screenShot(u"点击视频预览图-查看视频文章'")
logging.error(e)
assert_false(True) def tearDown(cls):
get_press_keycode(4) @classmethod
def tearDownClass(cls):
time.sleep(3)
get_press_keycode(4)

这里先贴一下测试用例脚本,后面会介绍自动化项目代码、设计、运行原理等。

appium+python自动化项目实战(一):引入nose和allure框架的更多相关文章

  1. appium+python自动化项目实战(二):项目工程结构

    废话不多说,直接上图: nose.cfg配置文件里,可以指定执行的测试用例.生成测试报告等.以后将详细介绍.

  2. selenium(12)-web UI自动化项目实战(PO模式,代码封装)

    web UI自动化项目实战-项目 项目使用禅道,所以你需要搭建1个禅道,搭建禅道的方法和步骤见 https://www.cnblogs.com/xinhua19/p/13151296.html 搭建U ...

  3. Selenium Web 自动化 - 项目实战(三)

    Selenium Web 自动化 - 项目实战(三) 2016-08-10 目录 1 关键字驱动概述2 框架更改总览3 框架更改详解  3.1 解析新增页面目录  3.2 解析新增测试用例目录  3. ...

  4. Selenium Web 自动化 - 项目实战环境准备

    Selenium Web 自动化 - 项目实战环境准备 2016-08-29 目录 1 部署TestNG  1.1 安装TestNG  1.2 添加TestNG类库2 部署Maven  2.1 mav ...

  5. Selenium Web 自动化 - 项目实战(二)

    Selenium Web 自动化 - 项目实战(二) 2016-08-08 什么是数据驱动?简答的理解就是测试数据决定了测试结果,这就是所谓数据驱动.数据驱动包含了数据,他就是测试数据,在自动化领域里 ...

  6. Appium+python自动化8-Appium Python API

    Appium+python自动化8-AppiumPython API   前言: Appium Python API全集,不知道哪个大神整理的,这里贴出来分享给大家. 1.contexts conte ...

  7. appium+python自动化61-中文输入乱码问题解决

    前言 在夜神模拟器上输入中文,发现是乱码,将unicodeKeyboard和resetKeyboard参数设置为True了,发现还是没法解决. 打开手机设置语言和输入法,发现找不到Appium And ...

  8. appium+python自动化52-多点触控MultiAction

    前言 MultiAction是针对多点触控操作的,是TouchAction的一个补充模块 TouchAction用法参考前面的一篇:appium+python自动化33-TouchAction 多点触 ...

  9. Appium+python自动化20-查看iOS上app元素属性

    前言 学UI自动化首先就是定位页面元素,玩过android版的appium小伙伴应该都知道,appium的windows版自带的Inspector可以定位app上的元素 Mac版的appium1.6的 ...

随机推荐

  1. 个人永久性免费-Excel催化剂功能第46波-区域集合函数,超乎所求所想

    在常规自定义函数的世界中,一般情况下,仅会输入一堆的参数,最终输出一个结果值,在以往Excel催化剂的自定义函数,已经大量出现输入一堆参数返回多个结果值并自动输出到多个单元格区域内.此项技术可运用的场 ...

  2. 浏览器和Node 中的Event Loop

    前言 js与生俱来的就是单线程无阻塞的脚本语言. 作为单线程语言,js代码执行时都只有一个主线程执行任务. 无阻塞的实现依赖于我们要谈的事件循环.eventloop的规范是真的苦涩难懂,仅仅要理解的话 ...

  3. 在vue中创建自定义指令

    原文:https://dev.to/ratracegrad/creating-custom-directives-in-vue-58hh 翻译:心上有杨 指令是带有 v- 前缀的特殊属性.指令的作用是 ...

  4. 推荐:经典SQL语句大全

    一.基础 .说明:备份sql server--- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:/mss ...

  5. python 文件读写总结

    这是个人在项目中抽取的代码,自己写的utils的通用模块,使用的框架是tronado,包括了文件的读写操作,api格式的统一函数,如有特别需要可以联系我或者自己扩展,刚学python不久,仅供参考,例 ...

  6. stack函数怎么用嘞?↓↓↓

    c++ stl栈stack的头文件书写格式为: #include 实例化形式如下: stack StackName; 其中成员函数如下: 1.检验堆栈是否为空 empty() 堆栈为空则返回真 形式如 ...

  7. 神奇的 SQL 之 CASE表达式,妙用多多 !

    前言 历史考试选择题:黄花岗起义第一枪谁开的? A宋教仁 B孙中山 C黄兴 D徐锡麟,考生选C. 又看第二题:黄花岗起义第二枪谁开的? 考生傻了,就选了个B. 接着看第三题:黄花岗起义中,第三枪谁开的 ...

  8. 浏览器如何加载和解析CSS——CSS样式来源与层叠规则

    关于CSS样式首先得理解浏览器如何加载它们,最终的页面样式是如何呈现的? CSS层叠样式表的关键在于"层叠",会根据选择符的使用而将样式相互叠加或者覆盖. CSS样式表之所有有&q ...

  9. Mybatis连接查询返回类型问题

    一对一映射 public class Card { private Integer id; private String num; private Student student; //重要 publ ...

  10. TCP queue 的一些问题

    转自Jasey Wang的blog,原文地址 首先回顾下三次握手里面涉及到的问题: 当 client 通过 connect 向 server 发出 SYN 包时,client 会维护一个 socket ...