appium+python自动化项目实战(一):引入nose和allure框架
本文将介绍一套比较完整的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框架的更多相关文章
- appium+python自动化项目实战(二):项目工程结构
废话不多说,直接上图: nose.cfg配置文件里,可以指定执行的测试用例.生成测试报告等.以后将详细介绍.
- selenium(12)-web UI自动化项目实战(PO模式,代码封装)
web UI自动化项目实战-项目 项目使用禅道,所以你需要搭建1个禅道,搭建禅道的方法和步骤见 https://www.cnblogs.com/xinhua19/p/13151296.html 搭建U ...
- Selenium Web 自动化 - 项目实战(三)
Selenium Web 自动化 - 项目实战(三) 2016-08-10 目录 1 关键字驱动概述2 框架更改总览3 框架更改详解 3.1 解析新增页面目录 3.2 解析新增测试用例目录 3. ...
- Selenium Web 自动化 - 项目实战环境准备
Selenium Web 自动化 - 项目实战环境准备 2016-08-29 目录 1 部署TestNG 1.1 安装TestNG 1.2 添加TestNG类库2 部署Maven 2.1 mav ...
- Selenium Web 自动化 - 项目实战(二)
Selenium Web 自动化 - 项目实战(二) 2016-08-08 什么是数据驱动?简答的理解就是测试数据决定了测试结果,这就是所谓数据驱动.数据驱动包含了数据,他就是测试数据,在自动化领域里 ...
- Appium+python自动化8-Appium Python API
Appium+python自动化8-AppiumPython API 前言: Appium Python API全集,不知道哪个大神整理的,这里贴出来分享给大家. 1.contexts conte ...
- appium+python自动化61-中文输入乱码问题解决
前言 在夜神模拟器上输入中文,发现是乱码,将unicodeKeyboard和resetKeyboard参数设置为True了,发现还是没法解决. 打开手机设置语言和输入法,发现找不到Appium And ...
- appium+python自动化52-多点触控MultiAction
前言 MultiAction是针对多点触控操作的,是TouchAction的一个补充模块 TouchAction用法参考前面的一篇:appium+python自动化33-TouchAction 多点触 ...
- Appium+python自动化20-查看iOS上app元素属性
前言 学UI自动化首先就是定位页面元素,玩过android版的appium小伙伴应该都知道,appium的windows版自带的Inspector可以定位app上的元素 Mac版的appium1.6的 ...
随机推荐
- 多线程与高并发(五)final关键字
final可以修饰变量,方法和类,也就是final使用范围基本涵盖了java每个地方,我们先依次学习final的基础用法,然后再研究final关键字在多线程中的语义. 一.变量 变量,可以分为成员变量 ...
- 从微信小程序开发者工具源码看实现原理(四)- - 自适应布局
从前面从微信小程序开发者工具源码看实现原理(一)- - 小程序架构设计可以知道,小程序大部分是通过web技术进行渲染的,也就是最终通过浏览器的dom tree + cssom来生成渲染树:既然最终是通 ...
- Linux系统安装jdk——.tar.gz版
1.rpm.deb.tar.gz的区别: rpm格式的软件包适用于基于Red Hat发行版的系统,例如Red Hat Linux.SUSE.Fedora. deb格式的软件包则是适用于基于Debian ...
- 详述Spring对数据校验支持的核心API:SmartValidator
每篇一句 要致富,先修路.要使用,先...基础是需要垒砌的,做技术切勿空中楼阁 相关阅读 [小家Java]深入了解数据校验:Java Bean Validation 2.0(JSR303.JSR349 ...
- 代码审计之metinfo5.1.4
在include/common.inc.php目录下有这样一段代码 这里是有$$变量覆盖的 拿这个sql查询语句测试一下,只要覆盖$tablepre即可进行sql注入 在后面加上如下代码,方便测试的时 ...
- On The Way—Step 2 Python入门之Python内容初始
2.1 输出 print() 打印一个字符串 print('你真好!') 打印变量内容 a = '你真好!' print(a) 结果都是:你真好! 2.2 变量 变量名字规则 只能用下划线.字 ...
- 使用.csv文件
引用自:https://blog.csdn.net/vision_tung/article/details/79845758 通用爬虫:https://blog.csdn.net/Vision_Tun ...
- 一文掌握 Spring Boot Profiles
Spring Boot Profiles 简介 Profile 的概念其实很早在 Spring Framework 就有了,在 Spring Framework 3.1 版本引入了注解 @Profil ...
- Restful API 中的错误处理
简介 随着移动开发和前端开发的崛起,越来越多的 Web 后端应用都倾向于实现 Restful API. Restful API 是一个简单易用的前后端分离方案,它只需要对客户端请求进行处理,然后返回结 ...
- str_replace导致的注入问题汇总
研究了下replace的注入安全问题. 一般sql注入的过滤方式就是引用addslashes函数进行过滤. 他会把注入的单引号转换成\',把双引号转换成\",反斜杠会转换成\\等 写一段ph ...