#登录方法的封装

from appium import webdriver
from time import sleep
from python_selenium.Slide import swipeLeft

def login(user,pwd):
    caps = {
      "platformName": "Android",
      "deviceName": "127.0.0.1:21503",
      "platformVersion": "5.1.1",
      "appPackage": "com.yw.yzz",
      "appActivity": "com.yw.yzz.biz.splash.SplashActivity",
      "unicodeKeyboard": "True",
      "resetKeyboard": "True",
      "noReset": "True"
      }
    dr = webdriver.Remote("http://127.0.0.1:4723/wd/hub",caps)
    dr.implicitly_wait(10)
    sleep(3)
    try:
        dr.find_element_by_id("com.yw.yzz:id/iv_img")
        sleep(2)
    except:
        dr.find_element_by_id("com.yw.yzz:id/seting_tab").click()
    else:
        swipeLeft(dr,3,1000)
        sleep(1)
        dr.find_element_by_id("com.yw.yzz:id/btn_open").click()
        sleep(4)
        dr.find_element_by_id("com.yw.yzz:id/seting_tab").click()
    sleep(1)
    dr.find_element_by_xpath('//android.widget.TextView[@resource-id="com.yw.yzz:id/tv_name"]').click()
    el2 = dr.find_element_by_id("com.yw.yzz:id/et_phone")
    el2.send_keys(user)
    el3 = dr.find_element_by_id("com.yw.yzz:id/et_password")
    el3.send_keys(pwd)
    el4 = dr.find_element_by_id("com.yw.yzz:id/btn_login")
    sleep(1)
    el4.click()
    try:
        dr.find_element_by_id("com.yw.yzz:id/tv_phone")
    except:
        raise AssertionError
    else:
        pass
    return dr
#滑动方法封装

from time import sleep

def swipeLeft(dr,n,t):
    width = dr.get_window_size()["width"]
    height = dr.get_window_size()["height"]
    for i in range(n):
        dr.swipe(width*0.9,height/2,width*0.1,height/2,t)
        sleep(1)

def swipeUp(dr,n,t):
    width = dr.get_window_size()["width"]
    height = dr.get_window_size()["height"]
    for i in range(n):
        dr.swipe(width*0.5,height*0.9,width*0.5,height*0.1,t)
        sleep(1)
#用例输出

from python_selenium.yyt_login import login
from time import sleep
import unittest

class YYT(unittest.TestCase):
    def setUp(self):
        self.driver = login("1777982xxxx","xxxxxxx")
        sleep(1)
        el1 = self.driver.find_element_by_id("com.yw.yzz:id/iv_btn_setting")
        el1.click()

    def test_ChangeName(self):
        el2 = self.driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout")
        el2.click()
        el3 = self.driver.find_element_by_id("com.yw.yzz:id/ll_updateinfo_name")
        el3.click()
        el4 = self.driver.find_element_by_id("com.yw.yzz:id/et_my_changemyname")
        el4.clear()
        el4.send_keys("xxxx")
        el5 = self.driver.find_element_by_id("com.yw.yzz:id/top_right_tv")
        el5.click()

    def test_ChangeSex(self):
        self.driver.tap([(0,131),(1080,281)],500)
        sleep(1)
        self.driver.find_element_by_id("com.yw.yzz:id/ll_updateinfo_gender").click()
        sleep(1)
        self.driver.find_element_by_id("com.yw.yzz:id/ll_choosegender_secret").click()

    def tearDown(self):
        self.driver.back()
        sleep(1)
        el7 = self.driver.find_element_by_id("com.yw.yzz:id/exit_btn")
        el7.click()
        el8 = self.driver.find_element_by_id("com.yw.yzz:id/sure_button")
        el8.click()
        sleep(1)
        self.driver.quit()

if __name__ == '__main__':
    unittest.main()
#批量运行用例及生成测试报告

import unittest
import HTMLTestRunner

path = "D:\\work_doc\\CodeFile\\python_selenium"
testcase = unittest.defaultTestLoader.discover(path,pattern="case.py",top_level_dir=None)

YYTtestreport = "d:\\testreport.html"
with open(YYTtestreport,"wb") as YYT:
    runner = HTMLTestRunner.HTMLTestRunner(YYT,title="测试报告",description="详细报告")
    runner.run(testcase)

unittest管理用例生成测试报告的更多相关文章

  1. unittest 管理用例生成测试报告

    # 登录方法的封装 from appium import webdriver from time import sleep from python_selenium.Slide import swip ...

  2. Python3 完美解决unittest框架下不生成测试报告

    前提: 1.运行测试用例一切正常,只是没有测试报告显示 2.使用命令行pyhon 脚本名字.py 却可以生成测试报告 3.pycharm 在运行测试用例的时候 默认是以unittest 框架来运行的, ...

  3. unittest管理接口用例(数据分离-读取excel)

    1.简单读取 #coding=utf-8 #调用封装好的excel读取公共方法 from python_API.common.ReadExcel import ReadExcel import req ...

  4. (appium+python)UI自动化_09_unittest批量运行测试用例&生成测试报告

    前言 上篇文章[(appium+python)UI自动化_08_unittest编写测试用例]讲到如何使用unittets编写测试用例,并执行测试文件.接下来讲解下unittest如何批量执行测试文件 ...

  5. 五、postman公共函数及newman运行与生成测试报告

    一.公共函数 postman中定义公共函数如下 1.每次断言的时候都需要重写或者复制之前的断言代码,可以通过如下方法定义断言的公共函数,以后每次断言的时候只需要调用公共函数即可进行断言 设置公共函数对 ...

  6. 记录python接口自动化测试--利用unittest生成测试报告(第四目)

    前面介绍了是用unittest管理测试用例,这次看看如何生成html格式的测试报告 生成html格式的测试报告需要用到 HTMLTestRunner,在网上下载了一个HTMLTestRunner.py ...

  7. python接口自动化测试(七)unittest 生成测试报告

    用例的管理问题解决了后,接下来要考虑的就是报告我问题了,这里生成测试报告主要用到 HTMLTestRunner.py 这个模块,下面简单介绍一下如何使用: 一.下载HTMLTestRunner下载: ...

  8. python语言(八)多线程、多进程、虚拟环境、unittest、生成测试报告

    一.多线程 进程与线程 进程:进程是资源(CPU.内存等)分配的最小单位,进程有独立的地址空间与系统资源,一个进程可以包含一个或多个线程 线程:线程是CPU调度的最小单位,是进程的一个执行流,线程依赖 ...

  9. Python+Selenium+Unittest+HTMLTestRunner生成测试报告+发送至邮箱,记一次完整的cnblog登录测试示例,

    测试思路:单个测试集.单个测试汇成多个测试集.运行测试集.生成测试报告.发送至邮箱. 第一步:建立单个测试集,以cnblog登录为例. 测试用例: cnblog的登录测试,简单分下面几种情况:(1)用 ...

随机推荐

  1. Qt常用类——QWidget

    QWidget类是所有用户界面对象的基类. Widget是用户界面的基本单元:它从窗口系统接收鼠标,键盘和其他事件,并在屏幕上绘制自己. 每个Widget都是矩形的,它们按照Z-order进行排序.

  2. 解决栏登 F~~~秋~~~之后只有火狐能上网的问题

    我发现F~~~完秋~~~只有火狐可以上网,惊了,后来发现是没有关代理服雾气 1.打开Chrome->设置 2.翻到最后点击显示高级设置 3.找到网络标签,点击更改代理服务器按钮 4.点击连接标签 ...

  3. 洛谷题解 P4392 【[BOI2007]Sound 静音问题】

    题目链接 其实写线段树的题还是比较的令我开心的因为不用脑子 怎么判断这题是要写线段树的? 1.暴力只能拿50分 2.这题是个绿题 3 .看数据范围 #include <cstdio> #i ...

  4. UDF——文件编码造成UDF编译失败

    有时候我们觉得我们的代码写得很正确的,但是在Fluent当中编译的时候一直编译不通过,提示我们错误,我们根据Fluent当中的错误提示去找到源代码中对应的行,却发现没有错误提示当中的问题,出现这个问题 ...

  5. react + node + express + ant + mongodb 的简洁兼时尚的博客网站

    前言 此项目是用于构建博客网站的,由三部分组成,包含前台展示.管理后台和后端. 此项目是基于 react + node + express + ant + mongodb 的,项目已经开源,项目地址在 ...

  6. windows server 2008的系统备份

    添加windows server backup功能,打开运行“服务器管理器”->“功能”选项, 点击“添加功能”,选择“Windows Server Backup”,选择下一步安装该功能. 点击 ...

  7. PHP strlen 对中文 的定义

    $zhStr = ‘您好,中国!’; // gbk编码下每个中文字符所占字节为2echo strlen($zhStr); // 输出:12 //utf-8编码下每个中文字符所占字节为3 echo st ...

  8. 关于nginx proxy_next_upstream 重试 和 max_fails的那些事

    背景及简要分析 前几天一次故障定位的时候发现,后端服务(java)在从故障中恢复之后,会出现大量499,且会持续较长时间无法自行恢复.根本原因是服务容量问题,处理太慢导致客户端等不了了,主动断开.不过 ...

  9. 小程序 - 底部导航栏“tabBar”

    小程序底部导航 1.app.json页面配置: { "pages": [ "pages/movie/movie", "pages/cinema/cin ...

  10. Linux手动安装新版本Python教程(CentOS)

    一.说明 1.1 linux为什么不升级python版本 2008年python3就发布了,到2020年1月1日python2.7就停止更新了,为什么主流的linux迟迟不去除python2自带pyt ...