Python unittest框架实现appium登录
import unittest
from appium.webdriver import webdriver
from ddt import data,ddt,unpack
class MyTestCase(unittest.TestCase):
def setUp(self):#准备的过程
desired_caps = {}
desired_caps["platformName"] = "Android"
desired_caps["platformVersion"] = "4.3"
desired_caps["deviceName"] = "127.0.0.1:62001"
desired_caps["appPackage"] = "com.syswin.baijingtoon"
desired_caps["appActivity"] = ""
desired_caps["unicodeKeyboard"] = "Ture" # 支持汉字
desired_caps["resetKeyboard"] = "Ture"
self.driver = webdriver.Remote("http://localhost:4723/wd/hub", desired_caps)
print("setUp")
#使用ddt的data注解,编写测试用例的参数,此时是多个参数的情况,每条参数就是一条测试用例
@data(("lsy@qq.com","",False),
("lsy.com", "", True),
("l%$%$", "", False))
@unpack
def test_login(self,username,password,expectedResult):#执行的过程,以test开头的测试用例
self.driver.find_element_by_id("email").send_keys(username)#填写邮箱
self.driver.find_element_by_id("pwd").send_keys(password)#填写密码
self.driver.find_element_by_id("btn").click()#点击登录按钮
try:
if self.driver.find_element_by_id("btn").is_displayed():#判断是都还有登录按钮,如果有result为False否则为Ture
result=False
except Exception :
result =True
self.assertEqual(result, expectedResult)#断言
def tearDown(self):#清理的过程
self.driver.quit() # 资源释放,不释放下次执行就会报错new session 不能建立,不能建立时需要重启appium
if __name__ == '__main__':
unittest.main()
测试用例执行层
import unittest
import unittestdemo
cases=unittest.TestLoader.loadTestsFromTestCase(unittestdemo.MyTestCase)#加载测试用例
mysuit=unittest.TestSuite([cases])#通过用例套件来跑用例
#用例套件外,想增加一条用例需要
#注意如果使用ddt数据驱动,每条用例的名称会自动生成,不是固定的test_login,所以不能通过以下方式添加单条用例,只能讲所有csaes加到suit中
mysuit.addTest(unittestdemo.MyTestCase("test_login"))
#verbosity日志级别
# 0 (静默模式): 只能获得总的测试用例数和结果
# 1 (默认模式): 非常类似静默模式 只是在每个成功的用例前面有个“.” 每个失败的用例前面有个 “F”
# 2 (详细模式):测试结果会显示每个测试用例的所有相关的信息
myrunner=unittest.TextTestRunner(verbosity=2)
myrunner.run(mysuit)
Python unittest框架实现appium登录的更多相关文章
- python+unittest框架第一天unittest之简单认识Test Fixure:测试固件【8月17更新】
20万的慢慢会实现的吧,hhh unittest框架,我就不在介绍了,百度有很详细的介绍. 我们只要了解: 1.unittest是单元测试框架 2.它提供用例组织与执行:在实际工作中案例可能有上百条, ...
- python unittest框架理解与总结(二)
unittest基本原理: ♦整个平台的搭建使用的是python的unittest测试框架,这里简单介绍下unittest模块的简单应用. ♦unittest是python的标准测试库,相比于其他测试 ...
- python+unittest框架整理(一点点学习前辈们的封装思路,一点点成长。。。)
预期框架整理目标: 1.单个用例维护在单个.py文件中可单个执行,也可批量生成组件批量执行 2.对定位参数,定位方法,业务功能脚本,用例脚本,用例批量执行脚本,常用常量进行分层独立,各自维护在单独的. ...
- python unittest框架装饰器
要说单元测试和UI自动化之间的是什么样的一个关系,说说我个人的一些心得体会吧,我并没有太多的这方面经验,由于工作本身就用的少,还有就是功能测试点点对于我这种比较懒惰的人来说,比单元测试复杂...思考单 ...
- python web框架Flask——后台登录
项目搭建 创建一个项目之后,需要在手动创建几个包(含有__init__.py文件的目录)和文件 1.在主目录下创建配置文件:config.py 2.在主目录下创建扩展文件:exts.py 3.在主目录 ...
- python unittest框架中addCleanup函数详解
接上一篇doCleanups说明,这次介绍下另一个很好用的函数:addCleanup 还是老规矩,看官方文档说明: addCleanup(function, *args, **kwargs)¶ Add ...
- python+unittest框架第六天unittest之优化测试报告
今天的内容主要是,用第三方的HTMLRUNner 第三方的报告来优化之前第五天批量执行案例的测试报告.案例的部分看第五天的批量执行笔记~ HTMLRUNner他可以生成更美观的测试报告,基于前辈造的车 ...
- python unittest 框架添加测试用例及运行
找出要测试的testcase,并加入到Testsuite,运行Testsuite并把结果给TestResult1.创建TestSuite实例对象suite = unittest.TestSuite() ...
- python unittest框架
四个部分: test fixture A test fixture represents(代表) the preparation needed to perform one or more tests ...
随机推荐
- php之大文件断点续传
前段时间做视频上传业务,通过网页上传视频到服务器. 视频大小 小则几十M,大则 1G+,以一般的HTTP请求发送数据的方式的话,会遇到的问题:1,文件过大,超出服务端的请求大小限制:2,请求时间过长, ...
- mysql几个简单的命令记录
mysql常用命令: .登录MySQL mysql -h主机 -u用户名 -p密码 . 查看MySQL数据库的字符集 show variables like '%char%'; .查看MySQL数据表 ...
- IIS7 伪静态 web.config 配置方法【详解】
IIS7 做伪静态比较的简单方便 1.程序方面 只需要设置web.config 就可以了. 2.服务器需要安装:URL Rewrite 下载地址:http://www.iis.net/download ...
- 分享7个shell脚本实例--shell脚本练习必备
概述 看多shell脚本实例自然就会有shell脚本的编写思路了,所以我一般比较推荐看脚本实例来练习shell脚本.下面分享几个shell脚本实例. 1.监测Nginx访问日志502情况,并做相应动作 ...
- outlook alias
Add an email address Go to Add an alias. Sign in to your Microsoft account, if prompted. Under Add a ...
- 如何在团队中做好Code Review
一.Code Review的好处 想要做好Code Review,必须让参与的工程师充分认识到Code Review的好处 1.互相学习,彼此成就 无论是高手云集的架构师团队,还是以CURD为主的业务 ...
- 狼人杀面杀APP(FGUI教程)
本教程为FairyGUI进阶教程,这是一套完整的面杀桌游APP.游戏不仅有发放随机身份的功能,还涉及10个页面的切换与各页面不同状态(最多达9种状态)的切换,众多复杂UI的交互,多语言切换,3D粒子在 ...
- 封装qt http文件下载类
#include <QApplication> #include <QtWidgets> #include <QtNetwork> //downloads one ...
- JVM Java字节码方法表与属性
方法表 1.methods_count method_info,前三个字段和field_info一样 2.方法的属性结构 方法中的每个属性都是一个attribut_info结构 JVM定义了部分at ...
- chrome下载提示网络错误
问题背景:项目开发测试阶段出现该问题. 复现:开发调试过程中一直没有问题,本地下载excel.Word.pdf 都完美,但是在服务部署到服务器之后,测试环境的chrome就总是下载失败,提示网络错误. ...