# 测试角色权限管理页面功能
from selenium import webdriver
from login_page import LoginPage
import random, time, unittest class TestRole(unittest.TestCase):
def setUp(self):
self.login_obj = LoginPage()
self.driver = webdriver.Chrome()
driver = self.driver
login_obj = self.login_obj
time.sleep(2)
driver = login_obj.login(driver) # 登录
driver.find_element_by_id('').click() # 进入监控管理
time.sleep(1)
# 进入角色管理
driver.find_element_by_xpath('//a[@url="manager/role/role_list.do"]').click()
time.sleep(2) # 定义变量
random_num_to_str = str(random.randint(1000, 9999)) # 随机数,保证不重复
self.role_name = 'role_' + random_num_to_str # 角色名,限制10个字符
self.spec_context = 'spec_' + random_num_to_str # 备注信息
self.modify_spec_context = self.spec_context + '_modify' # 修改后的备注信息 def tearDown(self):
'''关闭浏览器'''
self.login_obj.quit() def test_role(self):
driver = self.driver def create_role():
'''新增角色'''
driver.find_element_by_id('addRow').click()
driver.find_element_by_id('role_name').send_keys(self.role_name)
driver.find_element_by_id('spec').send_keys(self.spec_context)
time.sleep(3)
driver.find_element_by_id('userSave').click()
time.sleep(3) def query_role_by_name():
'''查询角色'''
driver.find_element_by_id('searchKey').send_keys(self.role_name)
driver.find_element_by_id('search').click()
time.sleep(3) def edit_role():
'''编辑角色'''
driver.find_element_by_xpath("//button[@title='编辑']").click() # 查找title='编辑'的button
driver.find_element_by_id('spec').clear()
driver.find_element_by_id('spec').send_keys(self.modify_spec_context)
time.sleep(2)
driver.find_element_by_id('userSave').click()
time.sleep(3) def bind_menu():
'''菜单绑定'''
driver.find_element_by_xpath("//a[@title='菜单绑定']").click()
driver.find_element_by_xpath("//div[@class='checkBoxUp']/div[1]/i").click() # 全选菜单
time.sleep(3)
driver.find_element_by_id('userSave').click()
time.sleep(3) def del_role():
'''删除角色'''
driver.find_element_by_xpath("//a[@title='删除']").click()
time.sleep(1)
driver.find_element_by_class_name("aui_state_highlight").click()
time.sleep(3) create_role()
query_role_by_name()
edit_role()
bind_menu()
del_role() if __name__ == '__main__':
'''自动执行以'test'开头的测试方法'''
unittest.main()

到这里完成了一条完整的测试用例,但如果有多条测试用例需要一起执行,后续说明。

selenium之使用unittest测试框架的更多相关文章

  1. <day002>Selenium基本操作+unittest测试框架

    任务1:Selenium基本操作 from selenium import webdriver # 通用选择 from selenium.webdriver.common.by import By # ...

  2. Python 下的unittest测试框架

    unittest测试框架,直接上图吧: data:数据:主要格式为CSV:读取方式:csv.reade: public:封装的模块:通用的模块单独封装,所需参数设置为变量: testcase:测试用例 ...

  3. python利用unittest测试框架组织测试用例的5种方法

    利用unittest测试框架可以编写测试用例,执行方式分两大类:利用main方法和利用testsuite,其中利用测试套件来组织测试用例可以有4种写法. 在此之前,先了解几个概念 TestCase:所 ...

  4. Python接口测试实战3(下)- unittest测试框架

    如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...

  5. 基于Python的接口自动化-unittest测试框架和ddt数据驱动

    引言 在编写接口自动化用例时,我们一般针对一个接口建立一个.py文件,一条接口测试用例封装为一个函数(方法),但是在批量执行的过程中,如果其中一条出错,后面的用例就无法执行,还有在运行大量的接口测试用 ...

  6. Selenium(十七):unittest单元测试框架(三) 脚本分析、编写Web用例

    1. 带unittest的脚本分析 也许你现在心里还有疑问,unittest框架与我们前面所编写的Web自动化测试之间有什么必然联系吗?当然有,既然unittest可以组织.运行测试用例,那么为什么不 ...

  7. unittest测试框架详解

    单元测试的定义 1. 什么是单元测试? ​ 单元测试是指,对软件中的最小可测试单元在与程序其他部分相隔离的情况下进行检查和验证的工作,这里的最小可测试单元通常是指函数或者类,一般是开发来做的,按照测试 ...

  8. unittest测试框架

    unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果. 一.u ...

  9. Selenium之unittest测试框架详谈及实操

    申明:本文是基于python3.x及selenium3.x. unittest,也可以称为PyUnit,可以用来创建全面的测试套件,可以用于单元自动化测试(模块).功能自动化测试(UI)等等. 官方文 ...

随机推荐

  1. bwdist matlab

    bwdist函数用于计算元素之间的距离. 举个例子: 如果a= 0     0     0     0     0     0     1     1     1     0     0     1  ...

  2. PAT A1143 Lowest Common Ancestor (30 分)——二叉搜索树,lca

    The lowest common ancestor (LCA) of two nodes U and V in a tree is the deepest node that has both U ...

  3. QT 读取txt文件的几种方法

    废话不说直接上代码 1. QString displayString; QFile file("/home/alvin/text.txt"); if(!file.open(QIOD ...

  4. Python文学家为Python写的一首词?(附中英文版)

    The Zen of Python, by Tim Peters (Python之禅 by Tim Peters) Beautiful is better than ugly. (优美胜于丑陋(Pyt ...

  5. EF Core中DbContext可以被Dispose多次

    我们知道,在EF Core中DbContext用完后要记得调用Dispose方法释放资源.但是其实DbContext可以多次调用Dispose方法,虽然只有第一次Dispose会起作用,但是DbCon ...

  6. 一篇文章让你彻底掌握 shell 语言

    一篇文章让你彻底掌握 shell 语言 由于 bash 是 Linux 标准默认的 shell 解释器,可以说 bash 是 shell 编程的基础. 本文主要介绍 bash 的语法,对于 linux ...

  7. UOJ14 DZY Loves Graph 并查集

    传送门 题意:给出一张$N$个点,最开始没有边的图,$M$次操作,操作为加入边(边权为当前的操作编号).删除前$K$大边.撤销前一次操作,每一次操作后询问最小生成树边权和.$N \leq 3 \tim ...

  8. React-UI组件和容器组件

    UI组件负责页面的渲染,又叫傻瓜组件. 容器组件负责逻辑,又叫聪明组件. 当一个组件只有render函数的时候,就可以用无状态组件的形式来定义这个组件.无状态组件怎么定义呢?其实就是一个函数,接受pr ...

  9. Momenta电话面试笔记

  10. ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十四节--后台工作者HangFire与ABP框架Abp.Hangfire及扩展

    返回总目录:ABP+AdminLTE+Bootstrap Table权限管理系统一期 HangFire与Quartz.NET相比主要是HangFire的内置提供集成化的控制台,方便后台查看及监控,对于 ...