def setUp(self): url = 'http://127.0.0.1/ranzhi/sys/user-login.html' browserType = 'Chrome' self.document = RanzhiDocument(url=url, browserType=browserType) name = 'admin' pwd = '123456' self.document.user_login(name=name, pwd=pwd) clicktarget = 'x, //*[@id="s-menu-superadmin"]/button' self.document.element_click(clicktarget) # 进入文档管理界面 self.document.enter_douumentmod() add_log().info('进入文档管理界面')
def assertadduser(self, elemtarget, expected): try: # 取出要断言的文本,实际结果 jieguo = self.get_element_text(elemtarget) add_log().info('取出文本成功:{}'.format(jieguo)) except: add_log().error('文本提取失败') raise Exception try: assert jieguo == expected add_log().info("断言成功,实际结果:{}等于预期结果:{}".format(jieguo, expected)) except: add_log().error("断言失败,实际结果:{}等于预期结果:{}".format(jieguo, expected)) raise AssertionError
def runner(self): # 实例化一个测试套件 testsuite = unittest.TestSuite() # 获取测试用例的绝对路径 case_path = Get_ini_data().get_case_path() # 加载测试用例 testsuite.addTests(unittest.TestLoader().discover( case_path, pattern='ranzhi_document_test.py')) tim = '然之测试报告{}.html'.format(time.strftime('%Y_%m_%d_%H_%M_%S')) htmlreportpath = Get_ini_data().get_htmlreport_path() reportfilename = htmlreportpath + tim test_runner = TestRunner(suite=testsuite, filename=reportfilename, report_dir=reportfilename, title='测试报告', tester='老林', desc="然之项目测试生产的报告", templates=2) test_runner.run() sendemails(reportfilename) add_log().info('邮件已经发送:{}'.format(reportfilename))
def test02(self, name, realname, sex, dep, roles, pwd1, pwd2, emailaddress, expected): """ 用户名为空格或者特殊字符的测试用例 :param name: :param realname: :param sex: :param dep: :param roles: :param pwd1: :param pwd2: :param emailaddress: :return: """ try: tt = str(datetime.datetime.now().microsecond) self.addtest.add_username(name) add_log().info('用户名输入成功 {}'.format(name)) self.addtest.add_realname(realname) add_log().info('真实姓名输入成功 {}'.format(realname)) self.addtest.chiose_sex(int(sex)) add_log().info('性别选择成功 {}'.format(sex)) self.addtest.chiose_dep(dep) add_log().info('部门选择成功 {}'.format(dep)) self.addtest.chiose_roles(roles) add_log().info('角色选择成功 {}'.format(roles)) self.addtest.send_pwd1(pwd1) add_log().info('密码1输入成功 {}'.format(pwd1)) self.addtest.send_pwd2(pwd2) add_log().info('密码2输入成功 {}'.format(pwd2)) self.addtest.add_email_address(tt + emailaddress) add_log().info('邮箱输入成功 {}'.format(tt + emailaddress)) self.addtest.click_button_save() add_log().info('点击保存') expected = expected # 获取输入框的提示文本 actual_results = self.addtest.get_element_text('x,//*[@id="accountLabel"]') add_log().info('预期结果:{}---实际结果:{}'.format(expected, actual_results)) self.assertEqual(expected, actual_results, '与预期结果不等') except: add_log().error('执行失败') self.addtest.save_Screenshot(Get_ini_data().get_screenshot_path()) raise AssertionError
def test07(self, name, realname, sex, dep, roles, pwd1, pwd2, emailaddress, dept_value): """ 部门选择 :param name: :param realname: :param sex: :param dep: :param roles: :param pwd1: :param pwd2: :param emailaddress: :return: """ try: tt = str(datetime.datetime.now().microsecond) self.addtest.add_username(name+tt) add_log().info('用户名输入成功 {}'.format(name)) self.addtest.add_realname(realname) add_log().info('真实姓名输入成功 {}'.format(realname)) self.addtest.chiose_sex(int(sex)) add_log().info('性别选择成功 {}'.format(sex)) self.addtest.chiose_dep(dep) add_log().info('部门选择成功 {}'.format(dep)) self.addtest.chiose_roles(roles) add_log().info('角色选择成功 {}'.format(roles)) self.addtest.send_pwd1(pwd1) add_log().info('密码1输入成功 {}'.format(pwd1)) self.addtest.send_pwd2(pwd2) add_log().info('密码2输入成功 {}'.format(pwd2)) self.addtest.add_email_address(tt + emailaddress) add_log().info('邮箱输入成功 {}'.format(tt + emailaddress)) self.addtest.click_button_save() add_log().info('点击保存') expected = dep self.addtest.set_num_of_pages(1000) actual_results = self.addtest.get_element_text\ ('css,body > div > div > div > div.col-md-10 > div > div > table > tbody > tr:last-child > td:nth-child(5)') add_log().info('获取部门名称{}'.format(actual_results)) self.assertEqual(expected, actual_results, '与预期结果不等') # 获取数据库中最新一条记录的部门信息 databasedata = get_databasedata('select sys_user.dept from sys_user order by sys_user.join') self.assertEqual(dept_value, databasedata, '实际部门{}与数据库数据{}比较'.format(dept_value, databasedata)) add_log().info('数据库验证成功:输入值:{}与数据库记录:{}'.format(dept_value, databasedata)) except: add_log().error('执行失败') self.addtest.save_Screenshot(Get_ini_data().get_screenshot_path()) raise AssertionError
def test01(self, name, realname, sex, dep, roles, pwd1, pwd2, emailaddress): """ 添加成功的用例 :param name: :param realname: :param sex: :param dep: :param roles: :param pwd1: :param pwd2: :param emailaddress: :return: """ try: tt = str(datetime.datetime.now().microsecond) self.addtest.add_username(name + tt) add_log().info('用户名输入成功 {}'.format(name + tt)) self.addtest.add_realname(realname) add_log().info('真实姓名输入成功 {}'.format(realname)) self.addtest.chiose_sex(int(sex)) add_log().info('性别选择成功 {}'.format(sex)) self.addtest.chiose_dep(dep) add_log().info('部门选择成功 {}'.format(dep)) self.addtest.chiose_roles(roles) add_log().info('角色选择成功 {}'.format(roles)) self.addtest.send_pwd1(pwd1) add_log().info('密码1输入成功 {}'.format(pwd1)) self.addtest.send_pwd2(pwd2) add_log().info('密码2输入成功 {}'.format(pwd2)) self.addtest.add_email_address(tt + emailaddress) add_log().info('邮箱输入成功 {}'.format(tt + emailaddress)) self.addtest.click_button_save() add_log().info('保存成功') self.addtest.set_num_of_pages(1000) add_log().info('页面切换成功') # 获取最后一条信息的用户名称文本 usernamedata = self.addtest.get_element_text \ ( 'css,body > div > div > div > div.col-md-10 > div > div > table > tbody > tr:last-child > td:nth-child(3)') add_log().info('页面用户名称文本获取:{}'.format(usernamedata)) self.assertEqual(name + tt, usernamedata, '客户验证添加失败') # 获取数据库信息,username actual_results = get_databasedata('select account from sys_user order by sys_user.join') add_log().info('数据库连接成功,数据:{}'.format(actual_results)) self.assertEqual(name + tt, actual_results, '数据库验证添加失败') except: self.addtest.save_Screenshot(Get_ini_data().get_screenshot_path()) add_log().error('执行失败') raise AssertionError
def test01(self, doclibtyp, doclibname, groupnum): """ 添加文档库的测试 :param doclibtyp: :param doclibname: :param groupnum: :return: """ try: tt = datetime.datetime.now().microsecond tt = str(tt) # 创建文档库 # 选择iframe框架 self.document.select_doc_ifarme() add_log().info('进入iframe框架') # 进入到文档库添加界面 self.document.cteat_doc_mod() add_log().info('进入到创建文档库界面') # 选择文档库类型 self.document.select_doc_lib(doclibtyp) add_log().info('文档库类型选择为:{}'.format(doclibtyp)) # 写入文档库名字 self.document.set_doclib_name(doclibname + tt) add_log().info('文档库名字为{}'.format(doclibname + tt)) # 根据li标签序号选择几个用户来使用文档库 self.document.set_username_doclib(1, 14, 3) add_log().info('用户选择完成') # 根据class下标选择授权分组,可以多选 self.document.chiose_usergroup(groupnum) add_log().info('用户组选择为:{}'.format(groupnum)) # 点击保存按钮 self.document.click_savecreatdoc_buttom() add_log().info('保存按钮点击操作') self.document.out_doc_ifarme() self.document.reload_doc_window() self.document.select_doc_ifarme() # 切换到文档库首页 self.document.switch_doc_home() add_log().info('切换到文档库首页') libname = self.document.get_element_text( 'css,#libs > div > div:nth-child(1) > div > a') add_log().info('首页第一个新文档名字:{},输入的文档名字{}'.format( libname, doclibname + tt)) self.assertEqual(libname, doclibname + tt, '客户端验证添加文档库失败') except: self.document.save_Screenshot(Get_ini_data().get_screenshot_path()) raise AssertionError