# 测试角色权限管理页面功能
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. 201904:Action recognition based on 2D skeletons extracted from RGB videos

    论文标题:Action recognition based on 2D skeletons extracted from RGB videos 发表时间:02 April 2019 解决问题/主要思想 ...

  2. spring HibernateTemplate.save() 方法的自动提交问题

    如题: service1: dao1.save(obj);   //失败,应该给spring捕获,但没有,程序继续执行下去了. redisService.fun1();  //被执行 service2 ...

  3. Omi框架学习之旅 - 组件 及原理说明

    hello world demo看完后其实基本的写法就会了. 但是omi中的组件是神马鬼?其实我也不知道组件是啥. 百度百科是这么说的: 是对数据和方法的简单封装.es6中,一个类其实也可以做到对方法 ...

  4. STL语法——集合:set 安迪的第一个字典(Andy's First Dictionary,UVa 10815)

    Description Andy, , has a dream - he wants to produce his very own dictionary. This is not an easy t ...

  5. 校内模拟赛 SovietPower Play With Amstar

    SovietPower Play With Amstar 题意: 一棵二叉树,每次询问一条路径上的路径和,初始每个点有一个权值1,询问后权值变为0.$n \leq 10^7,m\leq10^6$ 分析 ...

  6. Python 学习 第六篇:迭代和解析

    Python中的迭代是指按照元素的顺序逐个调用的过程,迭代概念包括:迭代协议.可迭代对象和迭代器三个概念. 迭代协议是指有__next__()函数的对象会前进到下一个结果,而到达系列的末尾时,则会引发 ...

  7. 饿了么element UI<el-dialog>弹出层</el-dialog>修改默认样式不能在<style scoped>修改

    如果在非scoped下,修改el-dialog自动添加的DIV类名的style加上important,可以覆盖原来的width,但这样会让整个项目的样式都乱套. 如果在scoped下修改style.所 ...

  8. 个人博客作业-Week1

    1.五个问题 1) 团队编程中会不会因为人们意见的分歧而耽误时间,最终导致效率降低? 2)软件团队中测试的角色应该独立出来吗 3)对于团队编程,如果没有时间测试他人的新功能,因此就不添加该新功能,那会 ...

  9. linux内核分析实践二学习笔记

    Linux实践二--内核模块的编译 标签(空格分隔): 20135328陈都 理解内核的作用 Linux内核[kernel]是整个操作系统的最底层,它负责整个硬件的驱动,以及提供各种系统所需的核心功能 ...

  10. Python学习笔记(二)——数据类型

    1.数据类型 Python有五个标准的数据类型: Numbers(数字) String(字符串) List(列表) Tuple(元组) Dictionary(字典) 2.Python数字类型 Pyth ...