unittest 管理用例生成测试报告
- # 登录方法的封装
- 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 管理用例生成测试报告的更多相关文章
- unittest管理用例生成测试报告
#登录方法的封装 from appium import webdriver from time import sleep from python_selenium.Slide import swipe ...
- Python3 完美解决unittest框架下不生成测试报告
前提: 1.运行测试用例一切正常,只是没有测试报告显示 2.使用命令行pyhon 脚本名字.py 却可以生成测试报告 3.pycharm 在运行测试用例的时候 默认是以unittest 框架来运行的, ...
- unittest管理接口用例(数据分离-读取excel)
1.简单读取 #coding=utf-8 #调用封装好的excel读取公共方法 from python_API.common.ReadExcel import ReadExcel import req ...
- (appium+python)UI自动化_09_unittest批量运行测试用例&生成测试报告
前言 上篇文章[(appium+python)UI自动化_08_unittest编写测试用例]讲到如何使用unittets编写测试用例,并执行测试文件.接下来讲解下unittest如何批量执行测试文件 ...
- 五、postman公共函数及newman运行与生成测试报告
一.公共函数 postman中定义公共函数如下 1.每次断言的时候都需要重写或者复制之前的断言代码,可以通过如下方法定义断言的公共函数,以后每次断言的时候只需要调用公共函数即可进行断言 设置公共函数对 ...
- 记录python接口自动化测试--利用unittest生成测试报告(第四目)
前面介绍了是用unittest管理测试用例,这次看看如何生成html格式的测试报告 生成html格式的测试报告需要用到 HTMLTestRunner,在网上下载了一个HTMLTestRunner.py ...
- python接口自动化测试(七)unittest 生成测试报告
用例的管理问题解决了后,接下来要考虑的就是报告我问题了,这里生成测试报告主要用到 HTMLTestRunner.py 这个模块,下面简单介绍一下如何使用: 一.下载HTMLTestRunner下载: ...
- python语言(八)多线程、多进程、虚拟环境、unittest、生成测试报告
一.多线程 进程与线程 进程:进程是资源(CPU.内存等)分配的最小单位,进程有独立的地址空间与系统资源,一个进程可以包含一个或多个线程 线程:线程是CPU调度的最小单位,是进程的一个执行流,线程依赖 ...
- Python+Selenium+Unittest+HTMLTestRunner生成测试报告+发送至邮箱,记一次完整的cnblog登录测试示例,
测试思路:单个测试集.单个测试汇成多个测试集.运行测试集.生成测试报告.发送至邮箱. 第一步:建立单个测试集,以cnblog登录为例. 测试用例: cnblog的登录测试,简单分下面几种情况:(1)用 ...
随机推荐
- java京东自动登录
大部分代码都是参考的这边,我只是在他的逻辑上实现了自动通过验证码,放上主逻辑的代码吧,图片识别我用的若快,可以去接其他平台 https://blog.csdn.net/u013232789/artic ...
- java添加对象成功后想知道当前添加对象的id
我使用的是springboot Mybatis写的项目,结构如下 mapper.xml(以下2个属性必须要有,主键id 一般是自动生成的) mapper.java (注意新增的返回值不需要,一般情况 ...
- spring singleton实例中的变量怎么保证线程安全
pring中管理的bean实例默认情况下是单例的[sigleton类型],就还有prototype类型按其作用域来讲有sigleton,prototype,request,session,global ...
- Thinking in Java,Fourth Edition(Java 编程思想,第四版)学习笔记(九)之Interfaces
Interfaces and abstract classes provide more structured way to separate interface from implementatio ...
- 基于 Redis 的订阅与发布
Github 仓库 demo-redis-subscribe 创建项目 $ composer create hyperf/biz-skeleton demo-redis-subscribe dev-m ...
- day28作业
import os import uuid import pickle from conf import settings class School: def __init__(self,name,a ...
- MySQL 50题练习
表名和字段 –1.学生表 Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别 –2.课程表 Course(c_id,c_name,t_id ...
- .NET Core 初识
什么是 ASP.NET Core? ASP.NET Core 是一个新的开源和跨平台的框架,用于构建如 Web 应用.物联网(IoT)应用和移动后端应用等连接到互联网的基于云的现代应用程序.ASP.N ...
- Jmeter系列(7)- 基础线程组Thread Group
如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html Thread Group基础线程组介绍 ...
- jeecg ant design vue一级菜单跳到外部页面——例如跳到百度
需求:点击首页跳到百度新打开的页面 找到SideMenu.vue 对应的inde.js找到renderMenuItem 函数.加一个判断 if(menu.meta.url=='https://ww ...