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(("[email protected]","111111",False),
          ("lsy.com", "1111112", True),
          ("l%$%$", "111111", 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)

原文地址:https://www.cnblogs.com/alasijia/p/9409184.html

时间: 2024-07-30 03:40:45

Python unittest框架实现appium登录的相关文章

Python Unittest框架用例执行失败自动截图

原生的unittest框架是不支持case失败后自动截图功能,网上的解决办法,大体上分为两种: 1.加装饰器 可参考让unittest框架在fail时自动截图的装饰器.给测试用例添加多个装饰器的问题 (python unittest.TestCase) 2.封装断言 可参考Getting Python's unittest results in a tearDown() method.python 自动化测试,求助:如何判断用例断言失败后自动截图 原文地址:https://www.cnblogs

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

预期框架整理目标: 1.单个用例维护在单个.py文件中可单个执行,也可批量生成组件批量执行 2.对定位参数,定位方法,业务功能脚本,用例脚本,用例批量执行脚本,常用常量进行分层独立,各自维护在单独的.py文件中 3.加入日志,htlm报表,发送邮件功能 框架结构 结构说明: config:配置部分,浏览器种类和定位信息维护在此处 constant:常量部分,固定不变的数据维护在此处 data:存放用于参数化的文本表格等文件 encapsulation:定位等selenium功能二次封装在此处 e

python unittest框架装饰器

要说单元测试和UI自动化之间的是什么样的一个关系,说说我个人的一些心得体会吧,我并没有太多的这方面经验,由于工作本身就用的少,还有就是功能测试点点对于我这种比较懒惰的人来说,比单元测试复杂...思考单元测试的处理逻辑和UI的对应关系,根据分层自动化的测试思想, UI>>接口>>最底层就是单元,对于单元级别的自动化测试, 是白盒测试范畴, 用一段代码去测试一段代码, 而我们则是需要利用单元测试框架的一些组织驱动单元来编写我们的自动化测试脚本, 而unittest是python自带的单

python web框架Flask后台登录

项目搭建 创建一个项目之后,需要在手动创建几个包(含有__init__.py文件的目录)和文件 1.在主目录下创建配置文件:config.py 2.在主目录下创建扩展文件:exts.py 3.在主目录下创建管理文件(供在命令行使用):manage.py 4.在主目录下创建app包,在app包下再创建cms包管理后台的文件 5.在cms包下创建views.py文件管理视图函数.models.py文件管理数据库模型.forms.py文件管理表单验证 填写配置文件 在配置文件下配置密钥.数据库连接等(

python unittest框架中addCleanup函数详解

接上一篇doCleanups说明,这次介绍下另一个很好用的函数:addCleanup 还是老规矩,看官方文档说明: addCleanup(function, *args, **kwargs)? Add a function to be called after tearDown() to cleanup resources used during the test. Functions will be called in reverse order to the order they are a

python unittest框架

unittest模块提供了单元测试的组件,方便开发人员进行自测. 一.unittest中的重要概念: 测试用例:测试用例对象是最小的测试单位,针对指定的输入来测试期待的输出.由类TestCase的派生类或FunctionTestCase类来创建的. 测试固件:代表了测试相关的准备和清除工作,比如在一个测试进行之前需要创建数据库连接,测试结束之后需要关闭数据库连接.测试固件是在TestCase子类中进行重载的setUp和tearDown函数实现的.每个测试用例执行前后都会自动执行setUp和tea

python web框架Flask——csrf攻击

CSRF是什么? (Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用也就是人们所知道的钓鱼网站.尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左.XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站.与XS

appium+python+unittest+HTMLRunner编写UI自动化测试集

简介 获取AppPackage和AppActivity 定位UI控件的工具 脚本结构 PageObject分层管理 HTMLTestRunner生成测试报告 启动appium server服务 以python文件模式执行脚本生成测试报告 下载与安装 下载需要自动化测试的App并安装到手机 获取AppPackage和AppActivity 参考:https://juejin.im/post/5c3809a451882524c84ebabe 最终,得到App的信息如下: 1 appPackage:c

Appium基于python unittest自动化测试并生成html测试报告

本文基于python单元测试框架unittest完成appium自动化测试,生成基于html可视化测试报告 代码示例: 1 #利用unittest并生成测试报告 2 class Appium_test(unittest.TestCase): 3 """appium测试类""" 4 def setUp(self): 5 desired_caps = { 6 'platformName': 'Android', 7 'deviceName': 'An