# 测试角色权限管理页面功能
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. 在Eclipse中运行Web项目Jsp网页时提示端口被占用的解决办法:Several ports (8005, 8888, 8009) required by Tomcat v9.0 Server at localhost are already in use.

    问题: 在Eclipse中运行Web项目Jsp网页启动Tomcat时提示端口被占用: Several ports (8005, 8080, 8009) required by Tomcat v9.0 ...

  2. MySQL(六)常用语法和数据类型

    阅读MySQL语法时,需要注意的规则: ①符号用来指出几个选择中的一个,比如:null | not null表示或者给出null或者给出not null: ②包含在方括号中的关键字或子句(如[like ...

  3. BesLyric 全新版本下载 ( windows \ mac \ linux )

    导读 BesLyric , 一款专门制作 网易云音乐 LRC 滚动歌词的软件! 搜索.下载.制作 歌词更方便! 很荣幸地,自 beslyric 2017 年开发推出以来,得到了很多云村村民的肯定,现在 ...

  4. 4-(基础入门篇)学会刷Wi-Fi模块固件(刷AT指令固件)

    http://www.cnblogs.com/yangfengwu/p/8965054.html 基础教程源码链接如果失效,请在淘宝介绍中下载,由于链接很容易失效,如果失效请联系卖家,谢谢 https ...

  5. vue 结合mint-ui Message box的使用方法

    两种方式使用: 一.全局注册 1.在main.js中引入 //引入 import { MessageBox } from 'mint-ui';   //全局使用,挂载到原型上 Vue.prototyp ...

  6. 数列分块入门九题(三):LOJ6283~6285

    Preface 最后一题我一直觉得用莫队是最好的. 数列分块入门 7--区间乘法,区间加法,单点询问 还是很简单的吧,比起数列分块入门 7就多了个区间乘. 类似于线段树,由于乘法的优先级高于加法,因此 ...

  7. [Oracle]GoldenGate官方文档

    Extracting Data in Oracle GoldenGate Integrated Capture Mode http://www.oracle.com/technetwork/datab ...

  8. GATT服务搜索流程(二)

    关于bta_dm_cb.p_sec_cback,这里我们之前已经分析过,他就是bte_dm_evt ,最终调用的函数btif_dm_upstreams_evt : static void btif_d ...

  9. springboot @Value 获取计算机中绝对路径文件的内容

    默认情况下使用 @Value("aaa.txt") private Resource txtResource; 这样获取到的是项目classpath 下的 aaa.txt 如果想获 ...

  10. PMO在组织中实现价值应做的工作

    PMO在组织中实现价值应做的工作 研发人员及项目经理常常对PMO有反感情绪,认为其不熟悉业务流程与技术.经常要求项目经理和研发人员提交形式化的材料,只审批和监控,不能为项目提供良好的服务.在很多企业, ...