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 ...
随机推荐
- YAML_08 handlers触发器
ansible]# vim adhttp.yml --- - hosts: cache remote_user: root tasks: - copy: src: /r ...
- python 使用 jt400.jar
jt400helper.py #coding=utf-8 import jpype import os class JT400Helper(object): def __init__(self, se ...
- learning armbian steps(3) ----- armbian 文件系统定制思路
如何定制自已的armbian文件系统. 1)uboot 2) kernel 3) rootfs 针对linux 系统开发人员来说,真正有用的只是其armbian文件系统, 将其制作成所需的文件系统 ...
- PHP实现系统编程(一) --- 网络Socket及IO多路复用【网摘】
一直以来,PHP很少用于socket编程,毕竟是一门脚本语言,效率会成为很大的瓶颈,但是不能说PHP就无法用于socket编程,也不能说PHP的socket编程性能就有多么的低,例如知名的一款PHP ...
- C语言for 循环 9*9 实现九九乘法表
#include <stdio.h> int main(void) { //for循环实现9*9乘法表 /* 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 */ ...
- Spoj PRIME1 - Prime Generator
题意翻译 求给定的两个数之间的素数 Translated by @kaiming 题目描述 Peter wants to generate some prime numbers for his cry ...
- javascript练习题
function Vertex(city, x) { this.name = city; this.num = x; } var node0 = new Vertex("邯郸", ...
- AtCoder Grand Contest 008题解
传送门 \(A\) 分类讨论就行了 然而我竟然有一种讨论不动的感觉 int x,y; inline int min(R int x,R int y){return x<y?x:y;} inlin ...
- deepin 深度Linux系统 15.11 链接蓝牙鼠标问题
不知道为毛就是搜索不到,好吧只能用老方法,那就是不使用deepin系统自带的面板进行管理 用下面的命令进行安装配置即可 sudo apt install bluetooth blueman bluem ...
- 2、Apache(httpd)之一 三种工作模式
httpd的特性: 高度模块化:core + modules 模块化设计DSO:Dynamic Shared Object MPM:Multipath Processing Modules 多路处理模 ...