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登录的更多相关文章

  1. python+unittest框架第一天unittest之简单认识Test Fixure:测试固件【8月17更新】

    20万的慢慢会实现的吧,hhh unittest框架,我就不在介绍了,百度有很详细的介绍. 我们只要了解: 1.unittest是单元测试框架 2.它提供用例组织与执行:在实际工作中案例可能有上百条, ...

  2. python unittest框架理解与总结(二)

    unittest基本原理: ♦整个平台的搭建使用的是python的unittest测试框架,这里简单介绍下unittest模块的简单应用. ♦unittest是python的标准测试库,相比于其他测试 ...

  3. python+unittest框架整理(一点点学习前辈们的封装思路,一点点成长。。。)

    预期框架整理目标: 1.单个用例维护在单个.py文件中可单个执行,也可批量生成组件批量执行 2.对定位参数,定位方法,业务功能脚本,用例脚本,用例批量执行脚本,常用常量进行分层独立,各自维护在单独的. ...

  4. python unittest框架装饰器

    要说单元测试和UI自动化之间的是什么样的一个关系,说说我个人的一些心得体会吧,我并没有太多的这方面经验,由于工作本身就用的少,还有就是功能测试点点对于我这种比较懒惰的人来说,比单元测试复杂...思考单 ...

  5. python web框架Flask——后台登录

    项目搭建 创建一个项目之后,需要在手动创建几个包(含有__init__.py文件的目录)和文件 1.在主目录下创建配置文件:config.py 2.在主目录下创建扩展文件:exts.py 3.在主目录 ...

  6. python unittest框架中addCleanup函数详解

    接上一篇doCleanups说明,这次介绍下另一个很好用的函数:addCleanup 还是老规矩,看官方文档说明: addCleanup(function, *args, **kwargs)¶ Add ...

  7. python+unittest框架第六天unittest之优化测试报告

    今天的内容主要是,用第三方的HTMLRUNner 第三方的报告来优化之前第五天批量执行案例的测试报告.案例的部分看第五天的批量执行笔记~ HTMLRUNner他可以生成更美观的测试报告,基于前辈造的车 ...

  8. python unittest 框架添加测试用例及运行

    找出要测试的testcase,并加入到Testsuite,运行Testsuite并把结果给TestResult1.创建TestSuite实例对象suite = unittest.TestSuite() ...

  9. python unittest框架

    四个部分: test fixture A test fixture represents(代表) the preparation needed to perform one or more tests ...

随机推荐

  1. Oracle instr() 字符查找函数

    instr()函数的格式  (俗称:字符查找函数) 格式一:instr( string1, string2 )    /   instr(源字符串, 目标字符串) 格式二:instr( string1 ...

  2. Linux下搭建iSCSI共享存储的方法 TGT 方式 Debian9.5系统下

    iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速 ...

  3. C int类型的数组在内存中的地址示例

    #include <stdio.h> int main(void){ int age[5] = {5,6,7,20,99}; return 0; } //转换后 /*(gdb) p &am ...

  4. 命令备忘 ss

    简介: Socket Statistics(ss)命令类似于netstat,它用于显示各种有用的网络套接字信息. 长时间看,已经注意到netstat这个命令程序已经过时了.从而代替netstat的是s ...

  5. layui select多选下拉显示 以及回显

    <input type="hidden" id="hiddensheshi" name="hiddensheshi" value=&q ...

  6. Nginx服务配置文件介绍

    LNMP架构应用实战——Nginx服务配置文件介绍 nginx的配置文件比较简单,但功能相当强大,可以自由灵活的进行相关配置,因此,还是了解下其配置文件的一此信息 1.Nginx服务目录结构介绍 安装 ...

  7. GO语言Error处理

    Go语言没有提供像Java.C#.Python语言中的try...catch异常处理方式,而是通过函数返回值逐层往上抛.好处就是避免漏掉本应处理的错误.坏处是代码啰嗦. 错误与异常区别 错误指的是可能 ...

  8. 深入理解JVM虚拟机13:再谈四种引用及GC实践

    Java中的四种引用类型 一.背景 Java的内存回收不需要程序员负责,JVM会在必要时启动Java GC完成垃圾回收.Java以便我们控制对象的生存周期,提供给了我们四种引用方式,引用强度从强到弱分 ...

  9. Spring boot POST 提交错误 Request header is too large

    解决方法 application.yml server: # 单位 KB max-http-header-size: 100000 java.lang.IllegalArgumentException ...

  10. 常用的maven仓库地址

    maven 仓库地址: 共有的仓库http://repo1.maven.org/maven2/http://repository.jboss.com/maven2/http://repository. ...