福建银瑞建设工程有限公司网站,商业网站需要的,制作门户网站,商业网站建设案例课程前言
之前的文章说过#xff0c; 要写一篇自动化实战的文章#xff0c; 这段时间比较忙再加回家过11一直没有更新博客#xff0c;今天整理一下实战项目的代码共大家学习。#xff08;注:项目是针对我们公司内部系统的测试#xff0c;只能内部网络访问#xff0c;外部网络…前言
之前的文章说过 要写一篇自动化实战的文章 这段时间比较忙再加回家过11一直没有更新博客今天整理一下实战项目的代码共大家学习。注:项目是针对我们公司内部系统的测试只能内部网络访问外部网络无法访问
问
1.外部网络无法访问代码也无法运行那还看这个项目有啥用
2.如何学习本项目
3.如何学习自动化测试pythonselenium
答
1.其实代码并不重要希望大家完完整整的看完这个项目后自己会有思路有想法学会这个项目的框架结构和设计思想把这些能应用到自己的项目中那么目的就达到了项目中涉及到的一些公共方法是可以单独运行的大家可以拿来执行用到自己的项目中
2.首先希望大家带着目标来学习这个项目1. 项目的目录结构每个目录中存放什么东西2.项目如何使用框架本项目使用的是unittest框架3.设计模式是如何应用在本项目中的本项目应用page object设计模式
3.个人而言
1如果你没有任何的编程基础建议先学习一门编程语言包括环境的搭建自己动手写代码遇到问题多想多琢磨这样一定会加深自己的印象。如果你有一定的编程基础那么直接看看python的基础语法和selenium就ok我的自动化测试经验也有限可能给不了大家太多的建议 当然会的越多越好 呵
2自己动手搭个框架手写一个实战的项目这时候你会发现你还有好多东西不会那么线路就来了哪里不会就去学哪里边学边写直到你的项目完成再次回味就会发现你会了好多当然不会的东西更多了因为你的思路慢慢的扩宽了你会想到无人值守集成等等的想法
3可以参加培训机构的培训说实话现在的培训机构越来越多个人认为有些机构的老师确实是没什么水准的因为他们教的是基础没有太多的拔高内容但是有一点是好了你可以很系统的学习一系列的自动化知识
最后有什么不懂的地方欢迎大家文末加群我们已经交流学习
ok 说了很多废话大家不要介意直接上项目
项目简介
项目名称**公司电子零售会员系统
项目目的实现电子零售会员系统项目自动化测试执行
项目版本v1.0
项目目录
Retail_TestProDocs# 存放项目的相关文档 01测试计划02测试大纲03测试用例04测试报告05测试进度06技术文档07测试申请Package# 存放第三方插件HTMLTestRunner.pyRetail Config__init__.pyConf.py# 读配置文件获取项目跟目录路径 并获取所有欲使用的目录文件的路径Config.ini# 存放项目跟目录的路径DataTestData__init__.pyelementDate.xlsx# 存放项目中所有的元素信息及测试数据Email_receiver.txt# 存放邮件的接受者信息Report# 测试报告ImageFail# 存放用例执行失败时的截图Pass# 存放用例执行成功时的截图Log# 存放用例执行过程中的log信息TestReport# 存放测试用例执行完成后生成的测试报告Test_case# 测试用例信息Models # 存放一些公共方法Doconfini.py# 读配置文件Doexcel.py# 读excel文件Driver.py# 存放driverLog.py# 生成logMyunit.py# 继承unittest.TestcaseSendmail.py# 发送邮件Strhandle.py# 字符串处理Tcinfo.py# 测试用例基本信息Testreport.py# 测试报告Page_obj# 测试模块Activerule_page.pyBase_page.pyCompany_page.pyCreaterule_page.pyMemberquery_page.pyModifypw_page.pyPointquery_page.pyActiveRuleTc.pyCompanyQueryTc.pyCreateRuleTc.pyLoginTc.pyMemberQueryTc.pyModifyPwTc.pyPointQueryTc.pyrunTc.py# 执行测试用例 项目环境
本版
python 36
pip insatll selenium
PyCharm 2017.2.4 Windows 10 10.0
HTMLTestRunner.py
项目框架
unittest单元测试框架
pageobject 设计模式
UI对象库思想
项目设计
1.一个模块被测项目的页面对应一个py文件及一个测试类测试文件
2.每一个测试页面系统的页面中存储页面元素及此页面中涉及到的功能
3.每一个用例组合在一个测试类里面生成一个py文件
项目目标
我们在写自动化测试项目的时候一定要想好你的脚本都要哪些功能页面元素平凡改动的时候是否需要大批量的修改脚本及测试不同数据时是否也要修改脚本那么能想到这些我们的初始目标差不多就有了
生成测试用例执行结果报告
2.生成测试用例执行日志
3.用例执行失败或者执行完成后自动发送邮件报告
用例执行失败或者成功时截取图片
5.数据驱动读取测试数据减少脚本维护成本
项目代码
config.ini # 存放项目跟路径
[project]
project_path D:\Petrochina_Retail_Test_Project1 2 Code descriptionread config.ini, get path3 Create time4 Developer5 6 import os7 import sys8 from retail.test_case.models.doconfIni import DoConfIni9
10 # 获取当前路径
11 currPath \
12 os.path.split(os.path.realpath(__file__))[0]
13
14 # 读配置文件获取项目路径
15 readConfig \
16 DoConfIni()
17 proPath \
18 readConfig.getConfValue(os.path.join(currPath,config.ini),project,project_path)
19
20 # 获取日志路径
21 logPath \
22 os.path.join(proPath,retail,report,Log)
23
24 # 测试用例路径
25 tcPath \
26 os.path.join(proPath,retail,test_case)
27
28 # 获取报告路径
29 reportPath \
30 os.path.join(proPath,retail,report,TestReport)
31
32 # 获取测试数据路径
33 dataPath \
34 os.path.join(proPath,retail,data,TestData)
35
36 # 保存截图路径
37 # 错误截图
38 failImagePath os.path.join(proPath, retail, report, image,fail)
39 # 成功截图
40 passImagePath os.path.join(proPath, retail, report, image,pass)
41
42 # 被调函数名称
43 funcName sys._getframe().f_code.co_name
44 # 被调函数所在行号
45 funcNo sys._getframe().f_back.f_lineno
46
47 # 被调函数所在文件名称
48 funcFile sys._getframe().f_code.co_filenameelementData.xlsx # 存放所有的测试数据及元素
一个excel文件不方便贴里面内容先过别管里面是啥了 哈哈 后面再找吧
mail_receiver.txt# 存放邮件接收者的账号 , 可以添加多个账号以‘’号分割
**qq.com 公共方法models下面的文件
doconfini.py
2 Code descriptionread conf file3 Create time4 Developer5 6 7 import logging8 import configparser9 from retail.config.conf import *
10 from retail.test_case.models.log import Logger
11
12 log Logger(__name__, CmdLevellogging.INFO, FileLevellogging.INFO)
13 class DoConfIni(object):
14
15 def __init__(self):
16
17
18 :param filename:
19
20 self.cf configparser.ConfigParser()
21
22 # 从ini文件中读数据
23 def getConfValue(self,filename,section,name):
24
25
26 :param config:
27 :param name:
28 :return:
29
30 try:
31 self.cf.read(filename)
32 value self.cf.get(section,name)
33 except Exception as e:
34 log.logger.exception(read file [%s] for [%s] failed , did not get the value %(filename,section))
35 raise e
36 else:
37 log.logger.info(read excel value [%s] successed! %value)
38 return value
39 # 向ini文件中写数据
40 def writeConfValue(self,filename, section, name, value):
41
42
43 :param section: section
44 :param name: value name
45 :param value: value
46 :return: none
47
48 try:
49 self.cf.add_section(section)
50 self.cf.set(section, name, value)
51 self.cf.write(open(filename, w))
52 except Exception :
53 log.logger.exception(section %s has been exist! %section)
54 raise configparser.DuplicateSectionError(section)
55 else:
56 log.logger.info(write sectionsectionwith value value successed!)
57
58 if __name__ __main__:
59 file_path currPath
60 print(file_path)
61 read_config DoConfIni()
62
63 value read_config.getConfValue(os.path.join(currPath,config.ini),project,project_path)
64 print(value)
65
66 read_config.writeConfValue(os.path.join(currPath,config.ini),tesesection, name, hello word)doexcel.py
2 Code descriptionread excel.xlsx, get values3 Create time4 Developer5 6 7 import xlrd8 import os9 import logging
10 from retail.config import conf
11 from retail.test_case.models.log import Logger
12
13 log Logger(__name__, CmdLevellogging.INFO, FileLevellogging.INFO)
14
15 class ReadExcel(object):
16
17 def __init__(self,fileNameelementDate.xlsx,sheetNameelementsInfo):
18
19
20 :param fileName:
21 :param sheetName:
22
23 try:
24 self.dataFile os.path.join(conf.dataPath, fileName)
25 self.workBook xlrd.open_workbook(self.dataFile)
26 self.sheetName self.workBook.sheet_by_name(sheetName)
27 except Exception:
28 log.logger.exception(init class ReadExcel fail, exc_infoTrue)
29 raise
30 else:
31 log.logger.info(initing class ReadExcel)
32 # 读excel中的数据
33 def readExcel(self,rownum,colnum):
34
35
36 :param rownum:
37 :param colnum:
38 :return:
39
40 try:
41 value self.sheetName.cell(rownum,colnum).value
42 except Exception:
43 log.logger.exception(read value from excel file fail, exc_infoTrue)
44 raise
45 else:
46 log.logger.info(reading value [%s] from excel file [%s] completed %(value, self.dataFile))
47 return value
48
49 if __name__ __main__:
50 cellValue ReadExcel().readExcel(1,3)
51 print((cellValue))log.py 1 2 Code descriptionlog info3 Create time4 Developer5 6 7 import logging8 import time9
10
11 class Logger(object):
12 def __init__(self, logger, CmdLevellogging.INFO, FileLevellogging.INFO):
13
14
15 :param logger:
16 :param CmdLevel:
17 :param FileLevel:
18
19 self.logger logging.getLogger(logger)
20 self.logger.setLevel(logging.DEBUG) # 设置日志输出的默认级别
21 # 日志输出格式
22 fmt logging.Formatter(%(asctime)s - %(filename)s:[%(lineno)s] - [%(levelname)s] - %(message)s)
23 # 日志文件名称
24 # self.LogFileName os.path.join(conf.log_path, {0}.log.format(time.strftime(%Y-%m-%d)))# %H_%M_%S
25 currTime time.strftime(%Y-%m-%d)
26 self.LogFileName rD:\Petrochina_Retail_Test_Project\retail\report\Log\logcurrTime.log
27 # 设置控制台输出
28 # sh logging.StreamHandler()
29 # sh.setFormatter(fmt)
30 # sh.setLevel(CmdLevel)# 日志级别
31
32 # 设置文件输出
33 fh logging.FileHandler(self.LogFileName)
34 fh.setFormatter(fmt)
35 fh.setLevel(FileLevel)# 日志级别
36
37 # self.logger.addHandler(sh)
38 self.logger.addHandler(fh)
39
40 # def debug(self, message):
41 #
42 #
43 # :param message:
44 # :return:
45 #
46 # self.logger.debug(message)
47 #
48 # def info(self,message):
49 #
50 #
51 # :param message:
52 # :return:
53 #
54 # self.logger.info(message)
55 #
56 # def warn(self,message):
57 #
58 #
59 # :param message:
60 # :return:
61 #
62 # self.logger.warning(message)
63 #
64 # def error(self,message):
65 #
66 #
67 # :param message:
68 # :return:
69 #
70 # self.logger.error(message)
71 #
72 # def criti(self,message):
73 #
74 #
75 # :param message:
76 # :return:
77 #
78 # self.logger.critical(message)
79
80 if __name__ __main__:
81 logger Logger(fox,CmdLevellogging.DEBUG, FileLevellogging.DEBUG)
82 logger.logger.debug(debug)
83 logger.logger.log(logging.ERROR,%(module)s %(info)s,{module:log日志,info:error}) #ERROR,log日志 errorsendmail.py 1 2 Code descriptionsend email3 Create time4 Developer5 6 7 import smtplib8 from email.mime.text import MIMEText9 from email.header import Header10 import os11 from retail.config import conf12 from retail.test_case.models.log import Logger13 14 log Logger(__name__)15 # 邮件发送接口16 class SendMail(object):17 18 邮件配置信息19 20 def __init__(self,21 receiver,22 subjectRetail 系统测试报告,23 serversmtp.qq.com,24 fromuser281754043qq.com,25 frompasswordgifhhsbgqyovbhhc,26 sender281754043qq.com):27 28 29 :param receiver:30 :param subject:31 :param server:32 :param fromuser:33 :param frompassword:34 :param sender:35 36 37 self._server server38 self._fromuser fromuser39 self._frompassword frompassword40 self._sender sender41 self._receiver receiver42 self._subject subject43 44 def sendEmail(self, fileName):45 46 47 :param filename:48 :return:49 50 # 打开报告文件读取文件内容51 try:52 f open(os.path.join(conf.reportPath, fileName), rb)53 fileMsg f.read()54 except Exception:55 log.logger.exception(open or read file [%s] failed,No such file or directory: %s %(fileName, conf.reportPath))56 log.logger.info(open and read file [%s] successed! %fileName)57 else:58 f.close()59 # 邮件主题60 subject Python test report #61 # 邮件设置62 msg MIMEText(fileMsg, html, utf-8)63 msg[subject] Header(subject, utf-8)64 msg[from] self._sender65 # 连接服务器登录服务器发送邮件66 try:67 smtp smtplib.SMTP()68 smtp.connect(self._server)69 smtp.login(self._fromuser, self._frompassword)70 except Exception:71 log.logger.exception(connect [%s] server failed or username and password incorrect! %smtp)72 else:73 log.logger.info(email server [%s] login success! %smtp)74 try:75 smtp.sendmail(self._sender, self._receiver, msg.as_string())76 except Exception:77 log.logger.exception(send email failed!)78 else:79 log.logger.info(send email successed!)80 81 82 # 从文件中读取邮件接收人信息83 def getReceiverInfo(fileName):84 85 :param filename: 读取接收邮件人信息86 :return: 接收邮件人信息87 88 try:89 openFile open(os.path.join(conf.dataPath, fileName))90 except Exception:91 log.logger.exception(open or read file [%s] failed,No such file or directory: %s %(fileName, conf.dataPath))92 else:93 log.logger.info(open file [%s] successed! %fileName)94 for line in openFile:95 msg [i.strip() for i in line.split(,)]96 log.logger.info(reading [%s] and got receiver value is [%s] %(fileName, msg))97 return msg98 99 if __name__ __main__:
100 readMsggetReceiverInfo(mail_receiver.txt)
101 sendmail SendMail(readMsg)
102 sendmail.sendEmail(2018-09-21 17_44_04.html)strhandle.py 1 2 Code description string handle3 Create time4 Developer5 6 7 import logging8 from retail.test_case.models.log import Logger9
10 log Logger(__name__, CmdLevellogging.INFO, FileLevellogging.INFO)
11 def strhandle(str):
12
13
14 :param str:
15 :return:
16
17 #初始化字符、数字、空格、特殊字符的计数
18 try:
19 lowerCase 0
20 upperCase 0
21 number 0
22 other 0
23 for stritem in str:
24 #如果在字符串中有小写字母那么小写字母的数量1
25 if stritem.islower():
26 lowerCase 1
27 #如果在字符串中有数字那么数字的数量1
28 elif stritem.isdigit():
29 number 1
30 elif stritem.isupper():# 大写字母
31 upperCase 1
32 #如果在字符串中有空格那么空格的数量1
33 else:
34 other 1
35 return lowerCase, upperCase, number, other
36 except Exception as e:
37 log.logger.exception(string handle error , please check!, exc_infoTrue)
38 raise e
39
40
41 if __name____main__:
42 list [qwert,erwer]
43 lowercase, uppercase, number, other strhandle(list[0])
44 print (该字符串中的小写字母有%d %lowercase)
45 print (该字符串中的大写写字母有%d %uppercase)
46 print (该字符串中的数字有%d %number)
47 print (该字符串中的特殊字符有%d %other)testreport.py 1 2 Code descriptiontest report3 Create time4 Developer5 6 7 8 import time9 import logging
10 import unittest
11 from BeautifulReport import BeautifulReport
12 import HTMLTestRunner
13 from retail.config import conf
14 from retail.test_case.models.log import Logger
15
16 log Logger(__name__, CmdLevellogging.INFO, FileLevellogging.INFO)
17 # 用HTMLTestRunner 实现的测试报告
18 def testreport():
19
20
21 :return:
22
23 currTime time.strftime(%Y-%m-%d %H_%M_%S)
24 fileName conf.reportPath r\report currTime .html
25 try:
26 fp open(fileName, wb)
27 except Exception :
28 log.logger.exception([%s] open error cause Failed to generate test report %fileName)
29 else:
30 runner HTMLTestRunner.HTMLTestRunner\
31 (streamfp, titleRetail sys测试报告,
32 description处理器:Intel(R) Core(TM)
33 i5-6200U CPU 2030GHz 2.40 GHz
34 内存:8G 系统类型: 64位 版本: windows 10 家庭中文版)
35 log.logger.info(successed to generate test report [%s] %fileName)
36 return runner, fp, fileName
37 #
38 def addTc(TCpath conf.tcPath, rule *TC.py):
39
40
41 :param TCpath: 测试用例存放路径
42 :param rule: 匹配的测试用例文件
43 :return: 测试套件
44
45 discover unittest.defaultTestLoader.discover(TCpath, rule)
46
47 return discover
48 # 用BeautifulReport模块实现测试报告
49 def runTc(discover):
50
51
52 :param discover: 测试套件
53 :return:
54
55 currTime time.strftime(%Y-%m-%d %H_%M_%S)
56 fileName currTime.html
57 try:
58 result BeautifulReport(discover)
59 result.report(filenamefileName, description测试报告, log_pathconf.reportPath)
60 except Exception:
61 log.logger.exception(Failed to generate test report, exc_infoTrue)
62 else:
63 log.logger.info(successed to generate test report [%s] % fileName)
64 return fileName
65
66 if __name__ __main__:
67 testreport()
68 suite addTc(rule *TC.py)
69 runTc(suite)driver.py 1 2 Code descriptionsave all driver info3 Create time4 Developer5 6 7 from selenium import webdriver8 import logging9 import sys
10 from retail.test_case.models.log import Logger
11
12
13 log Logger(__name__, CmdLevellogging.INFO, FileLevellogging.INFO)
14 class WDriver(object):
15
16 # Firefox driver
17 def fireFoxDriver(self):
18
19
20 :return:
21
22 try:
23 self.driver webdriver.Firefox()
24 except Exception as e:
25 log.logger.exception(FireFoxDriverServer.exe executable needs to be in PATH. Please download!, exc_infoTrue)
26 raise e
27 else:
28 log.logger.info(%s:found the Firefox driver [%s] successed ! %(sys._getframe().f_code.co_name,self.driver))
29 return self.driver
30
31 # chrom driver
32 def chromeDriver(self):
33
34
35 :return:
36
37 try:
38 # option webdriver.ChromeOptions()# 实现不打开浏览器 执行web自动化测试脚本
39 # option.add_argument(headless)#
40 # self.driver webdriver.Chrome(chrome_optionsoption)
41 self.driver webdriver.Chrome()
42 except Exception as e:
43 log.logger.exception(ChromeDriverServer.exe executable needs to be in PATH. Please download!,
44 exc_infoTrue)
45 raise e
46 else:
47 log.logger.info(%s:found the chrome driver [%s] successed ! % (sys._getframe().f_code.co_name, self.driver))
48 return self.driver
49
50
51 # Ie driver
52 def ieDriver(self):
53
54
55 :return:
56
57 try:
58 self.driver webdriver.Ie()
59 except Exception as e:
60 log.logger.exception(IEDriverServer.exe executable needs to be in PATH. Please download!,
61 exc_infoTrue)
62 raise e
63 else:
64 log.logger.info(%s:found the IE driver [%s] successed ! % (sys._getframe().f_code.co_name, self.driver))
65 return self.driver
66
67
68 if __name__ __main__:
69 WDriveWDriver()
70 WDrive.fireFoxDriver()myunittest.py 1 2 Code descriptionunittest framwork3 Create time4 Developer5 6 7 from retail.test_case.models.driver import WDriver8 import logging9 import unittest
10 from retail.test_case.page_obj.login_page import LoginPage
11 from retail.test_case.models.log import Logger
12 from selenium import webdriver
13
14 log Logger(__name__, CmdLevellogging.INFO, FileLevellogging.INFO)
15 class MyunitTest(unittest.TestCase):
16
17
18
19
20 # add by xuechao at 2018.09.19
21 classmethod
22 def setUpClass(cls): # 一个测试类(文件)执行一次打开浏览器, 节约每个用例打开一次浏览器的时间
23
24 #cls.driver WDriver().fireFoxDriver()
25 cls.driver WDriver().chromeDriver()
26 cls.driver.maximize_window()
27 log.logger.info(opened the browser successed!)
28 # ----------------------------
29
30 def setUp(self):
31
32
33 :return:
34
35 self.login LoginPage(self.driver)
36 self.login.open()
37 log.logger.info(************************starting run test cases************************)
38
39 def tearDown(self):
40
41
42 :return:
43
44 self.driver.refresh()
45 log.logger.info(************************test case run completed************************)
46
47 # add by linuxchao at 2018.09.19
48 classmethod
49 def tearDownClass(cls):
50 cls.driver.quit()
51 log.logger.info(quit the browser success!)
52 #----------------------------
53 if __name__ __main__:
54 unittest.main()目前为止我需要的所有的公共方法都编写完了 后期再需要别的方法可以加下面我们就开始编写我们的测试用例由于我们使用的是PageObject模式那么我们需要设计一个basepage页面所有的页面或者说模块全部继承这个basepagebasepage主要编写所有页面的公共方法 1 2 Code description base page 封装一些公共方法3 Create time4 Developer5 6 from selenium.webdriver.support.wait import WebDriverWait7 from selenium.webdriver.support import expected_conditions as EC8 from selenium.webdriver.common.by import By9 import os10 import logging11 import sys12 from retail.test_case.models.log import Logger13 from retail.config import conf14 from retail.test_case.models.doexcel import ReadExcel15 16 eleData ReadExcel() # 存储系统所有的元素数据17 testLoginData ReadExcel(elementDate.xlsx, userNamePw) # 登录模块测试数据18 modifyPwData ReadExcel(elementDate.xlsx, modifyPw) # 修改密码模块测试数据19 queryData ReadExcel(elementDate.xlsx, queryData)20 log Logger(__name__, CmdLevellogging.INFO, FileLevellogging.INFO)21 22 class BasePage(object):23 24 主菜单25 menuList \26 [(By.LINK_TEXT, eleData.readExcel(7, 3)), # 权限管理27 (By.LINK_TEXT, eleData.readExcel(8, 3)), # 会员档案28 (By.LINK_TEXT, eleData.readExcel(9, 3)), # 积分消费查询29 (By.LINK_TEXT, eleData.readExcel(10, 3)), # 功能演示30 (By.LINK_TEXT, eleData.readExcel(11, 3)), # 待办工作31 (By.LINK_TEXT, eleData.readExcel(12, 3)), # 报表32 (By.LINK_TEXT, eleData.readExcel(13, 3)), # 积分规则/活动查询33 (By.LINK_TEXT, eleData.readExcel(14, 3))] # 积分规则/活动申请34 35 def __init__(self, driver,urlhttp://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp):36 37 38 :param driver:39 :param url:40 41 self.driver driver42 self.base_url url43 def _open(self,url):44 45 46 :param url:47 :return:48 49 try:50 self.driver.get(url)51 self.driver.implicitly_wait(10)52 except Exception as e:53 log.logger.exception(e, exc_infoTrue)54 raise ValueError(%s address access error, please check %url)55 else:56 log.logger.info(%s is accessing address %s at line[46] %(sys._getframe().f_code.co_name,url))57 58 def open(self):59 60 61 :return:62 63 64 self._open(self.base_url)65 log.logger.info(%s loading successed! %self.base_url)66 return self.base_url67 68 # *loc 代表任意数量的位置参数69 def findElement(self, *loc):70 71 查找单一元素72 :param loc:73 :return:74 75 try:76 WebDriverWait(self.driver,10).until(EC.visibility_of_element_located(loc))77 # log.logger.info(The page of %s had already find the element %s%(self,loc))78 # return self.driver.find_element(*loc)79 except Exception as e:80 log.logger.exception(finding element timeout!, details ,exc_infoTrue)81 raise e82 else:83 log.logger.info(The page of %s had already find the element %s % (self, loc))84 return self.driver.find_element(*loc)85 86 def findElements(self, *loc):87 88 查找一组元素89 :param loc:90 :return:91 92 try:93 WebDriverWait(self.driver,10).until(EC.visibility_of_element_located(loc))94 # log.logger.info(The page of %s had already find the element %s % (self, loc))95 # return self.driver.find_elements(*loc)96 except Exception as e:97 log.logger.exception(finding element timeout!, details, exc_infoTrue)98 raise e99 else:
100 log.logger.info(The page of %s had already find the element %s % (self, loc))
101 return self.driver.find_elements(*loc)
102
103 def inputValue(self, inputBox, value):
104
105 后期修改其他页面直接调用这个函数
106 :param inputBox:
107 :param value:
108 :return:
109
110 inputB self.findElement(*inputBox)
111 try:
112 inputB.clear()
113 inputB.send_keys(value)
114 except Exception as e:
115 log.logger.exception(typing value error!, exc_infoTrue)
116 raise e
117 else:
118 log.logger.info(inputValue:[%s] is receiveing value [%s] % (inputBox, value))
119
120 # 获取元素数据
121 def getValue(self, *loc):
122
123
124 :param loc:
125 :return:
126
127 element self.findElement(*loc)
128 try:
129 value element.text
130 #return value
131 except Exception:
132 #element self.find_element_re(*loc) # 2018.09.21 for log
133 value element.get_attribute(value)
134 log.logger.info(reading the element [%s] value [%s] % (loc, value))
135 return value
136 except:
137 log.logger.exception(read value failed, exc_infoTrue)
138 raise Exception
139 else:
140 log.logger.info(reading the element [%s] value [%s] % (loc,value))
141 return value
142
143 def getValues(self, *loc):
144
145
146 :param loc:
147 :return:
148
149 value_list []
150 try:
151 for element in self.findElements(*loc):
152 value element.text
153 value_list.append(value)
154 except Exception as e:
155 log.logger.exception(read value failed, exc_infoTrue)
156 raise e
157 else:
158 log.logger.info(reading the element [%s] value [%s]% (loc,value_list))
159 return value_list
160
161 # 执行js脚本
162 def jScript(self,src):
163
164
165 :param src:
166 :return:
167
168 try:
169 self.driver.excute_script(src)
170 except Exception as e:
171 log.logger.exception(execute js script [%s] failed %src)
172 raise e
173 else:
174 log.logger.info(execute js script [%s] successed %src)
175
176
177 # 判断元素是否存在
178 def isElementExist(self, element):
179
180
181 :param element:
182 :return:
183
184 try:
185 WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located(element))
186 except:
187 # log.logger.exception(The element [%s] not exist, exc_infoTrue)
188 return False
189 else:
190 # log.logger.info(The element [%s] have existed! %element)
191 return True
192 # 截图
193 def saveScreenShot(self, filename):
194
195
196 :param filename:
197 :return:
198
199 list_value []
200
201 list filename.split(.)
202 for value in list:
203 list_value.append(value)
204 if list_value[1] png or list_value[1] jpg or list_value[1] PNG or list_value[1] JPG:
205 if fail in list_value[0].split(_):
206 try:
207 self.driver.save_screenshot(os.path.join(conf.failImagePath, filename))
208 except Exception:
209 log.logger.exception(save screenshot failed !, exc_infoTrue)
210 else:
211 log.logger.info(the file [%s] save screenshot successed under [%s] % (filename, conf.failImagePath))
212 elif pass in list_value[0]:
213 try:
214 self.driver.save_screenshot(os.path.join(conf.passImagePath, filename))
215 except Exception:
216 log.logger.exception(save screenshot failed !, exc_infoTrue)
217 else:
218 log.logger.info(
219 the file [%s] save screenshot successed under [%s] % (filename, conf.passImagePath))
220 else:
221 log.logger.info(save screenshot failed due to [%s] format incorrect %filename)
222 else:
223 log.logger.info(the file name of [%s] format incorrect cause save screenshot failed, please check! % filename)
224
225 # 接受错误提示框
226 def accept(self, *loc):
227
228
229 :return:
230
231 self.findElement(*loc).click()
232 log.logger.info(closed the error information fram successed!)
233
234 if __name__ __main__:
235 pass登录页面 1 2 Code description login page3 Create time4 Developer5 6 7 from selenium.webdriver.common.by import By8 import logging9 import sys
10 from retail.test_case.page_obj.base_page import BasePage, eleData, testLoginData
11 from retail.test_case.models.log import Logger
12
13 log Logger(__name__, CmdLevellogging.INFO, FileLevellogging.INFO)
14
15
16 class LoginPage(BasePage):
17
18 用户名密码登录按钮保存信息错误提示
19 userNameEle (By.ID, eleData.readExcel(1, 3))
20 passWordEle (By.ID, eleData.readExcel(2, 3))
21 loginBtnEle (By.ID, eleData.readExcel(3, 3))
22 saveInfoEle (By.NAME, eleData.readExcel(4, 3))
23 errorMessage (By.ID, eleData.readExcel(5, 3))
24 quitBtn (By.ID, eleData.readExcel(6, 3))
25
26 # 用户名和密码
27 unpwData \
28 [[testLoginData.readExcel(1, 0), testLoginData.readExcel(1, 1)],# 正确的用户名和正确的密码
29 [testLoginData.readExcel(2, 0), testLoginData.readExcel(2, 1)],# 错误的用户名和正确的密码
30 [testLoginData.readExcel(3, 0), testLoginData.readExcel(3, 1)],# 空的用户名和正确的密码
31 [testLoginData.readExcel(4, 0), testLoginData.readExcel(4, 1)],# 错误的用户名和错误的密码
32 [testLoginData.readExcel(5, 0), testLoginData.readExcel(5, 1)],# 正确的用户名和空密码
33 [testLoginData.readExcel(6, 0), testLoginData.readExcel(6, 1)],# 正确的用户名和错误的密码
34 [testLoginData.readExcel(7, 0), testLoginData.readExcel(7, 1)]]# 空用户名和空密码
35
36
37 # 登录按钮
38 def clickLoginBtn(self):
39
40
41 :return:
42
43 element self.findElement(*self.loginBtnEle)
44 element.click()
45 log.logger.info(%s ,logining....! % sys._getframe().f_code.co_name)
46 # 登录失败时提示
47 def getFailedText(self):
48
49
50 :return:
51
52 info self.findElement(*self.errorMessage).text
53 log.logger.info(login failed : %s %info)
54 return info
55
56 # 登录失败时弹出的alert
57 def handleAlert(self):
58
59
60 :return:
61
62 try:
63 alert self.driver.switch_to_alert()
64 text alert.text
65 alert.accept()
66 except Exception:
67 log.logger.exception(handle alert failed, please check the details ,exc_infoTrue)
68 raise
69 else:
70 log.logger.info(login failed ,%s handle alert successed alert info: %s! %(sys._getframe().f_code.co_name, text))
71 return text
72
73 # 统一登录函数
74 def loginFunc(self, usernamermln, passwordqwert1234!#):
75
76 :param username:
77 :param password:
78 :return:
79
80 self.inputValue(self.userNameEle, username)
81 self.inputValue(self.passWordEle, password)
82 self.clickLoginBtn()
83
84 # 清空输入框数据
85 def clearValue(self, element):
86
87 empty self.findElement(*element)
88 empty.clear()
89 log.logger.info(emptying value.......)
90
91
92 # 推出
93 def quit(self):
94 self.findElement(*self.quitBtn).click()
95 log.logger.info(quit)
96
97 if __name__ __main__:
98 pass登录测试用例 1 2 Code descriptionlogin testcase3 Create time4 Developer5 6 7 import unittest8 import time9 import logging10 import sys11 from retail.test_case.models.myunit import MyunitTest12 from retail.test_case.models.log import Logger13 14 15 log Logger(__name__, CmdLevellogging.INFO, FileLevellogging.INFO)16 17 class Login_TC(MyunitTest):18 19 登录模块测试用例20 21 def test_login_success_correct_username_password(self):22 用户名正确,密码正确,登录成功23 self.login.loginFunc()24 currUrl self.driver.current_url # 获取当前的url地址25 try:26 self.assertIn(main, currUrl, main not in current url!)27 except Exception:28 self.login.saveScreenShot(correct_username_password_fail.png)29 raise30 else:31 self.login.saveScreenShot(correct_username_password_pass.png)32 log.logger.info(%s-run completed! please check the test report % (sys._getframe().f_code.co_name))33 34 def test_login_failed_incorrect_username(self):35 用户名错误,密码正确,登录失败36 37 self.login.loginFunc(self.login.unpwData[1][0], self.login.unpwData[1][1])38 failText self.login.getFailedText()39 self.assertEqual(输入的用户名或密码错误请重新输入!, failText, 提示信息错误)40 log.logger.info(%s-run completed! please check the test report % (sys._getframe().f_code.co_name))41 42 def test_login_failed_incorrect_password(self):43 44 用户名正确,密码错误,登录失败45 46 self.login.loginFunc(self.login.unpwData[5][0], self.login.unpwData[5][1])47 failText self.login.getFailedText()48 self.assertEqual(输入的用户名或密码错误请重新输入!, failText, 提示信息错误)49 log.logger.info(%s-run completed! please check the test report % (sys._getframe().f_code.co_name))50 51 def test_login_failed_username_password_blank(self):52 用户名为空,密码为空,登录失败53 54 self.login.loginFunc(self.login.unpwData[6][0], self.login.unpwData[6][1])55 failText self.login.handleAlert() # 获取alert的提示信息56 self.assertEqual(请填写用户名, failText, 提示信息错误)57 log.logger.info(%s-run completed! please check the test report % (sys._getframe().f_code.co_name))58 59 def test_login_failed_password_blank(self):60 用户名正确,密码为空,登录失败61 62 self.login.loginFunc(self.login.unpwData[4][0], self.login.unpwData[4][1])63 failText self.login.handleAlert() # 获取alert的提示信息64 self.assertEqual(请填写用户密码, failText, 提示信息错误)65 log.logger.info(%s-run completed! please check the test report % (sys._getframe().f_code.co_name))66 67 def test_login_failed_unpw_incorrect(self):68 用户名错误,密码错误,登录失败69 # try:70 self.login.loginFunc(self.login.unpwData[3][0], self.login.unpwData[4][0])71 failText self.login.getFailedText()72 self.assertEqual (输入的用户名或密码错误请重新输入!, failText, failed)73 log.logger.info(%s-run completed! please check the test report % (sys._getframe().f_code.co_name))74 75 def test_login(self):76 循环测试登录功能77 for listitem in self.login.unpwData:78 self.login.inputValue(self.login.userNameEle,listitem[0])79 time.sleep(2)80 self.login.inputValue(self.login.passWordEle,listitem[1])81 time.sleep(2)82 self.login.clickLoginBtn()83 time.sleep(2)84 if listitem[0] rmln and listitem[1] qwert1234!#:85 currUrl self.driver.current_url86 self.assertIn (main , currUrl)87 self.login.quit()88 elif listitem[0] rmln and listitem[1] ! qwert1234!#:89 if listitem[1] :90 failText self.login.handleAlert() # 获取alert的提示信息91 self.assertEqual(请填写用户密码, failText, 提示信息错误)92 else:93 failText self.login.getFailedText()94 self.assertEqual(输入的用户名或密码错误请重新输入!, failText, 提示信息错误)95 elif listitem[0] ! rmln and listitem[1] qwert1234!#:96 if listitem[0]:97 failText self.login.handleAlert() # 获取alert的提示信息98 self.assertEqual(请填写用户名, failText, 提示信息错误)99 else:
100 failText self.login.getFailedText()
101 self.assertEqual(输入的用户名或密码错误请重新输入!, failText, 提示信息错误)
102 elif listitem[0] listitem[1] :
103 failText self.login.handleAlert() # 获取alert的提示信息
104 self.assertEqual(请填写用户名, failText, 提示信息错误)
105 else:
106 failText self.login.getFailedText()
107 self.assertEqual(输入的用户名或密码错误请重新输入!, failText, 提示信息错误)
108 log.logger.info(%s-run completed! please check the test report % (sys._getframe().f_code.co_name))
109
110 if __name__ __main__:
111 unittest.main()修改密码页面 1 2 Code descriptionmodify password page3 Create time4 Developer5 6 7 import logging8 import time9 from selenium.webdriver.common.by import By10 from selenium.webdriver.common.action_chains import ActionChains11 from retail.test_case.page_obj.base_page import BasePage, eleData, modifyPwData12 from retail.test_case.models.log import Logger13 14 log Logger(__name__, CmdLevellogging.INFO, FileLevellogging.INFO)15 class PrimaryMenu(BasePage):16 17 密码数据18 pwdList \19 [[modifyPwData.readExcel(1, 0), modifyPwData.readExcel(1, 1), modifyPwData.readExcel(1, 2)],20 [modifyPwData.readExcel(2, 0), modifyPwData.readExcel(2, 1), modifyPwData.readExcel(2, 2)],21 [modifyPwData.readExcel(3, 0), modifyPwData.readExcel(3, 1), modifyPwData.readExcel(3, 2)],22 [modifyPwData.readExcel(4, 0), modifyPwData.readExcel(4, 1), modifyPwData.readExcel(4, 2)],23 [modifyPwData.readExcel(5, 0), modifyPwData.readExcel(5, 1), modifyPwData.readExcel(5, 2)]]24 25 权限管理下拉菜单26 menuPersonal (By.LINK_TEXT, eleData.readExcel(15, 3))27 menuModifyPwd (By.LINK_TEXT, eleData.readExcel(16, 3))28 29 密码修改30 oldPwd (By.ID, eleData.readExcel(17, 3))31 newPwd (By.ID, eleData.readExcel(18, 3))32 commitPwd (By.ID, eleData.readExcel(19, 3))33 34 错误提示框及确定35 errMessage (By.XPATH, eleData.readExcel(20, 3))36 closeBtn (By.CSS_SELECTOR, eleData.readExcel(21, 3))37 38 密码说明39 readMe (By.ID, eleData.readExcel(22, 3))40 41 保存42 saveBtn (By.XPATH, eleData.readExcel(23, 3))43 44 # 主菜单45 def findMenu(self,*menuList):46 47 48 :param menu_list:49 :return:50 51 return self.findElement(*menuList)52 53 # 旧密码输入框54 def inputOldPw(self, oldPwd):55 56 try:57 self.findElement(*self.oldPwd).clear()58 self.findElement(*self.oldPwd).send_keys(oldPwd)59 except Exception:60 log.logger.exception(input Pw [%s] for oldPw [%s] fail %(oldPwd, self.oldPwd))61 raise62 else:63 log.logger.info(inputing Pw [%s] for oldPw [%s] % (oldPwd, self.oldPwd))64 # 新密码输入框65 def inputNewPw(self, newPwd):66 67 68 :param newPwd:69 :return:70 71 try:72 self.findElement(*self.newPwd).clear()73 self.findElement(*self.newPwd).send_keys(newPwd)74 except Exception:75 log.logger.exception(input Pw [%s] for newPw [%s] fail % (newPwd, self.newPwd))76 raise77 else:78 log.logger.info(inputing Pw [%s] for newPw [%s] % (newPwd, self.newPwd))79 # 确认密码输入框80 def inputConfirmPw(self, confirmPwd):81 82 83 :param confirmPwd:84 :return:85 86 try:87 self.findElement(*self.commitPwd).clear()88 self.findElement(*self.commitPwd).send_keys(confirmPwd)89 except Exception:90 log.logger.exception(input Pw [%s] for commitPw [%s] fail %(confirmPwd, self.commitPwd))91 raise92 else:93 log.logger.info(inputing Pw [%s] for commitPw [%s] %(confirmPwd, self.commitPwd))94 # 保存95 def saveButton(self):96 97 98 :return:99
100 try:
101 self.driver.implicitly_wait(5)
102 clickbutton self.findElement(*self.saveBtn)
103 time.sleep(1)
104 clickbutton.click()
105 except Exception:
106 log.logger.exception(click save button fail)
107 raise
108 else:
109 log.logger.info(clciking the button)
110
111 # 修改密码功能菜单
112 def modifyPwMenu(self):
113
114
115 :return:
116
117 try:
118 self.findElement(*self.menuList[0]).click()
119 self.findElement(*self.menuPersonal).click()
120 self.findElement(*self.menuModifyPwd).click()
121 except Exception:
122 log.logger.exception(not found menu [%s]-[%s]-[%s] %(self.menuList[0], self.menuPersonal, self.menuModifyPwd))
123 raise
124 else:
125 log.logger.info(finding menu [%s]-[%s]-[%s] %(self.menuList[0], self.menuPersonal, self.menuModifyPwd))
126 self.driver.implicitly_wait(2)
127
128 # 修改密码
129 def modifyPw(self, list):
130
131
132 :param list:
133 :return:
134
135 try:
136 self.inputOldPw(list[0])
137 self.inputNewPw(list[1])
138 self.inputConfirmPw(list[2])
139 self.saveButton()
140 except Exception:
141 log.logger.exception(input oldpw/newpw/commitpw [%s]/[%s]/[%s] fail %(list[0], list[1], list[2]))
142 raise
143 else:
144 log.logger.info(modifing pw [%s]/[%s]/[%s] %(list[0], list[1], list[2]))
145
146 # 错误提示框
147 def errorDialog(self, commit_btn (By.ID,unieap_form_Button_1_unieap_input)):
148
149 :type commit_btn: 元祖
150
151
152 try:
153 messages_frame self.findElement(*self.errMessage)
154 text messages_frame.text
155 element self.findElement(*commit_btn)
156 time.sleep(2)
157 action ActionChains(self.driver)
158 action.move_to_element(element).perform()
159 time.sleep(2)
160 element.click()
161 action.reset_actions() # 释放鼠标
162 except Exception:
163 log.logger.exception(close errMsgFram [%s] or get text [%s]fail %(self.errMessage))
164 raise
165 else:
166 log.logger.info(close errMsgFram [%s] and get text [%s] success %(self.errMessage, text))
167 return text
168
169 # 关闭提示框
170 def closeErrMsg(self, element):
171 try:
172 ele self.findElement(*element)
173 action ActionChains(self.driver)
174 action.move_to_element(ele).perform()
175 time.sleep(2)
176 ele.click()
177 action.reset_actions()
178 except Exception:
179 log.logger.exception(close the err msg ifram fail, exc_infoTrue)
180 raise
181 else:
182 log.logger.info(closing the err msg ifram success!)
183
184 if __name__ __main__:
185 pass修改密码测试用例
1 2 Code description权限管理/个人设置/密码修改 testcase3 Create time4 Developer5 6 7 import time8 from retail.test_case.models.myunit import MyunitTest9 from retail.test_case.page_obj.modifypw_page import PrimaryMenu10 from retail.test_case.models.strhandle import strhandle11 12 class ModifyPw_TC(MyunitTest):13 14 权限管理/个人设置/密码修改模块测试用例15 16 def test_menu_is_display(self):17 主菜单校验18 self.login.loginFunc()19 menu PrimaryMenu(self.driver)20 time.sleep(4)21 num 022 for menu_item in menu.menuList: # 循环遍历并断言菜单是否正确23 self.assertEqual(menu.menuList[num][1],(menu.findMenu(*menu_item).text),菜单不存在)24 numnum125 26 def test_modify_password_len(self):27 旧密码非空,新密码长度小于4位,确认密码非空,修改密码失败,弹窗提示28 self.login.loginFunc()29 menu PrimaryMenu(self.driver)30 menu.modifyPwMenu() # 查找修改密码页面31 menu.modifyPw(menu.pwdList[0]) # 修改密码32 text menu.errorDialog(menu.closeBtn)33 self.assertIn(密码长度至少 4 位, text, 提示信息错误) # 密码长度不满足时断言提示信息34 35 def test_modify_password_strebgth(self):36 旧密码非空,新密码长度大于4且强度不够,确认密码非空,修改密码失败,弹窗提示37 self.login.loginFunc()38 menu PrimaryMenu(self.driver)39 menu.modifyPwMenu() # 查找修改密码页面40 menu.modifyPw(menu.pwdList[1]) # 修改密码41 text menu.errorDialog(menu.closeBtn)42 self.assertIn(密码强度不够请重新输入密码, text, 密码强度不够请重新输入密码) # 密码强度不满足时断言提示信息43 44 def test_modify_password_incorrect(self):45 旧密码不正确非空,新密码等于确认密码且满足条件,修改密码失败,弹窗提示46 self.login.loginFunc()47 menu PrimaryMenu(self.driver)48 menu.modifyPwMenu() # 查找修改密码页面49 menu.modifyPw(menu.pwdList[2]) # 修改密码50 text menu.errorDialog(menu.closeBtn)51 self.assertIn(旧密码输入错误, text, 旧密码输入错误) # 新密码和确认码不同时断言提示信息52 53 def test_modify_password_difference(self):54 旧密码非空,新密码不等于确认密码且新密码满足条件,修改密码失败,弹窗提示55 self.login.loginFunc()56 menu PrimaryMenu(self.driver)57 menu.modifyPwMenu() # 查找修改密码页面58 menu.modifyPw(menu.pwdList[3]) # 修改密码59 text menu.errorDialog(menu.closeBtn)60 self.assertIn(两次输入的新密码不同, text, 两次输入的新密码不同) # 新密码和确认码不同时断言提示信息61 62 def test_modify_password_all_blank(self):63 旧密码,新密码,确认密码任意为空,修改密码失败,弹窗提示64 self.login.loginFunc()65 menu PrimaryMenu(self.driver)66 menu.modifyPwMenu() # 查找修改密码页面67 menu.modifyPw(menu.pwdList[4]) # 修改密码68 text menu.errorDialog(menu.closeBtn)69 self.assertIn(该输入项的值不能为空, text, 该输入项的值不能为空) # 所有密码均为空时断言提示信息70 71 def test_modify_password(self):72 循环校验提示信息73 self.login.loginFunc()74 menu PrimaryMenu(self.driver)75 menu.modifyPwMenu() # 查找修改密码页面76 error_list []77 for list in range(len(menu.pwdList)):78 menu.modifyPw(menu.pwdList[list])79 if menu.isElementExist(menu.errMessage):80 text menu.errorDialog(menu.closeBtn) # 这里只判断是否有提示框弹出如有说明修改失败没有或者其他提示框默认为修改成功81 error_list.append(text)82 else:83 self.assertTrue(menu.isElementExist(*menu.errMessage), error fram not exist, please open bug)84 self.assertEqual(密码长度至少 4 位,error_list[0],log infomation error!)85 self.assertEqual(密码强度不够请重新输入密码, error_list[1], log infomation error!)86 self.assertEqual(旧密码输入错误, error_list[2], log infomation error!)87 self.assertEqual(两次输入的新密码不同, error_list[3], log infomation error!)88 self.assertEqual(该输入项的值不能为空, error_list[4], log infomation error!)89 90 def test_modifypw(self):91 循环测试修改密码功能92 self.login.loginFunc()# 登录93 menu PrimaryMenu(self.driver)94 menu.modifyPwMenu() # 查找修改密码页面95 for item in menu.pwdList:96 menu.modifyPw(item)97 if menu.isElementExist(menu.errMessage): # 如果存在提示框 再断言提示信息是否正确98 if item[0] ! and len(item[1]) 4 and item[2] !: # 新密码长度校验99 text menu.errorDialog(menu.closeBtn)
100 try:
101 self.assertEqual(密码长度至少 4 位,text,the message incorrect!)
102 except Exception:
103 menu.saveScreenShot(fail_密码长度.png)
104 raise
105 elif item[0] ! and len(item[1]) 4 and item[2] !: # 新密码强度校验 [a, qwert, qwert],
106 lowercase, uppercase, number, otherstrhandle(item[1])
107 if lowercase 0 and uppercase 0 and number 0 and other 0: # 小写 大写
108 text menu.errorDialog(menu.closeBtn)
109 self.assertIn(密码强度不够请重新输入密码, text, 密码强度不够请重新输入密码)
110 elif uppercase 0 and other 0 and number 0 and lowercase 0: # 大写 特殊字符
111 text menu.errorDialog(menu.closeBtn)
112 self.assertIn(密码强度不够请重新输入密码, text, 密码强度不够请重新输入密码)
113 elif lowercase 0 and other 0 and number 0 and uppercase 0: # 小写 特殊字符
114 text menu.errorDialog(menu.closeBtn)
115 self.assertIn(密码强度不够请重新输入密码, text, 密码强度不够请重新输入密码)
116 elif lowercase 0 and other 0 and number 0 and uppercase 0: # 大写 数字
117 text menu.errorDialog(menu.closeBtn)
118 self.assertIn(密码强度不够请重新输入密码, text, 密码强度不够请重新输入密码)
119 elif lowercase 0 and other 0 and number 0 and uppercase 0: # 小写 数字
120 text menu.errorDialog(menu.closeBtn)
121 self.assertIn(密码强度不够请重新输入密码, text, 密码强度不够请重新输入密码)
122 elif lowercase 0 and other 0 and number 0 and uppercase 0:
123 text menu.errorDialog(menu.closeBtn)
124 self.assertIn(密码强度不够请重新输入密码, text, 密码强度不够请重新输入密码)
125 elif lowercase 0 and other 0 and number 0 and uppercase 0:
126 text menu.errorDialog(menu.closeBtn)
127 self.assertIn(密码强度不够请重新输入密码, text, 密码强度不够请重新输入密码)
128 elif lowercase 0 and other 0 and number 0 and uppercase 0:
129 text menu.errorDialog(menu.closeBtn)
130 self.assertIn(密码强度不够请重新输入密码, text, 密码强度不够请重新输入密码)
131 elif lowercase 0 and other 0 and number 0 and uppercase 0:
132 text menu.errorDialog(menu.closeBtn)
133 self.assertIn(密码强度不够请重新输入密码, text, 密码强度不够请重新输入密码)
134 elif item[0] ! qwert1234!# and item[1] item[2]:# 4
135 lowercase, uppercase, number, other strhandle(item[1])
136 if (lowercase 0 and uppercase 0 and number 0) or (
137 lowercase 0 and uppercase 0 and other 0) or (
138 number 0 and other 0 and lowercase 0) or (
139 number 0 and other 0 and uppercase 0):
140 text menu.errorDialog(menu.closeBtn)
141 self.assertIn(旧密码输入错误, text, 旧密码输入错误) # 新密码和确认码不同时断言提示信息
142 elif item[0] qwert1234!#$ and item[1] ! item[2]:# and item[1] 4:
143 lowercase, uppercase, number, other strhandle(item[1])
144 if (lowercase 0 and uppercase 0 and number 0) or (
145 lowercase 0 and uppercase 0 and other 0) or (
146 number 0 and other 0 and lowercase 0) or (
147 number 0 and other 0 and uppercase 0):
148 text menu.errorDialog(menu.closeBtn)
149 self.assertIn(两次输入的新密码不同, text, 两次输入的新密码不同)
150 else:
151 print(test value incorrect! please check it)
152 elif item[0] or item[1] or item[2] : # 输入项为空校验
153 text menu.errorDialog(menu.closeBtn)
154 self.assertIn(该输入项的值不能为空, text, 该输入项的值不能为空) # 所有密码均为空时断言提示信息
155 else:
156 self.assertTrue(menu.isElementExist(menu.errMessage), error fram not exist, please check the test value or file bug)
157
158 if __name____main__:
159 pass会员档案查询页面 1 2 Code description会员档案查询 page3 Create time4 Developer5 6 7 from retail.test_case.page_obj.base_page import queryData8 import time9 from selenium.webdriver.common.by import By10 import logging11 import sys12 from retail.test_case.page_obj.modifypw_page import PrimaryMenu, eleData13 from retail.test_case.models.log import Logger14 15 log Logger(__name__, CmdLevellogging.INFO, FileLevellogging.INFO)16 17 18 class MemberQuery(PrimaryMenu):19 20 21 22 # 测试数据: 会员编码, 会员姓名, 手机号码23 valuesList [queryData.readExcel(1, 1), int(queryData.readExcel(2, 1)), queryData.readExcel(3, 1)]24 25 # 会员档案下拉菜单26 memberMenu (By.LINK_TEXT, eleData.readExcel(24, 3))27 28 # 会员查询页面的3个列表(查询条件会员信息明细积分变化明细)29 uiElements (By.XPATH, eleData.readExcel(25, 3))30 # 会员类型31 memberTypeBtn (By.ID, eleData.readExcel(26, 3))32 # 会员类型下拉选项33 memberTypeNum [(By.XPATH, eleData.readExcel(27, 3)), (By.XPATH, eleData.readExcel(28, 3)),34 (By.XPATH, eleData.readExcel(29, 3))]35 36 # 会员级别37 memberLevelBtn (By.ID, eleData.readExcel(30, 3))38 # 会员级别下拉选项39 memberLevelNum [(By.XPATH, eleData.readExcel(31, 3)), (By.XPATH, eleData.readExcel(32, 3)),40 (By.XPATH, eleData.readExcel(33, 3)), (By.XPATH, eleData.readExcel(34, 3))]41 42 # 会员编号会员姓名手机号码43 memberNumNamePhone [(By.ID, eleData.readExcel(35, 3)), (By.ID, eleData.readExcel(36, 3)),44 (By.ID, eleData.readExcel(37, 3))]45 # 查询异常提示框46 qFailerr (By.XPATH, eleData.readExcel(38, 3)) # 查询失败弹出的错误提示框47 48 confirmBtn (By.XPATH, eleData.readExcel(39, 3))49 50 # 查询与重置51 queryResetBtn [(By.ID, eleData.readExcel(40, 3)), (By.ID, eleData.readExcel(41, 3))]52 53 # 点击会员类型54 def selectMemberType(self):55 56 57 :return:58 59 try:60 self.findElement(*self.memberTypeBtn).click()61 self.driver.implicitly_wait(2)62 except Exception:63 log.logger.exception(selecting member type fail )64 raise65 else:66 log.logger.info(---selecting member type )67 68 # 点击会员级别69 def selectMemberLevel(self):70 71 72 :return:73 74 try:75 self.findElement(*self.memberLevelBtn).click()76 self.driver.implicitly_wait(2)77 except Exception:78 log.logger.exception(selecting member level fail )79 raise80 else:81 log.logger.info(---selecting member level )82 83 # 查找会员档案查询菜单84 def memberQueryMenu(self):85 86 87 :return:88 89 self.findElement(*self.menuList[1]).click()90 self.findElement(*self.memberMenu).click()91 time.sleep(4)92 log.logger.info(page [%s] :found the menu [%s] and [%s] % (93 sys._getframe().f_code.co_name, self.menuList[1], self.memberMenu))94 95 # 会员类型/会员级别下拉选项96 def memberTypeLevelOption(self, *xpathList):97 98 99 :param xpath_list:
100 :return:
101
102 try:
103 member_type_level self.findElement(*xpathList)
104 text member_type_level.text
105 except Exception:
106 log.logger.exception(get element member type/level item text fail, exc_infoTrue)
107 raise
108 else:
109 log.logger.info(get element [%s] member type/level item text [%s] fail % (xpathList, text))
110 return text, member_type_level
111
112 # 点击查询和重置按钮
113 def cQueryResetBtn(self, *queryResetBtn):
114
115
116 :param query_reset_btn:
117 :return:
118
119 try:
120 self.findElement(*queryResetBtn).click()
121 except Exception:
122 log.logger.exception(query/reset button not click, exc_infoTrue)
123 raise
124 else:
125 log.logger.info(clicking query/reset button )
126
127 # 输入查询条件
128 def iQueryCondition(self, numNamePhone, value):
129
130
131 :param numNamePhone:
132 :param value:
133 :return:
134
135 number_name_phone self.findElement(*numNamePhone)
136 try:
137 number_name_phone.clear()
138 number_name_phone.send_keys(value)
139 except Exception:
140 log.logger.exception(input value error, exc_infoTrue)
141 raise
142 else:
143 log.logger.info([%s] is typing value [%s] % (numNamePhone, value))
144
145 # 获取条件输入框的内容
146 def getInputboxValue(self, *memberNumNamePhone):
147
148
149 :param memberNumNamePhone:
150 :return:
151
152 try:
153 get_member_number_name_phone_text self.findElement(*memberNumNamePhone)
154 text get_member_number_name_phone_text.get_attribute(value)
155 except Exception:
156 log.logger.exception(get value of element fail, exc_infoTrue)
157 raise
158 else:
159 log.logger.info(get value [%s] of element [%s] success % (memberNumNamePhone, text))
160 return text
161
162 # 重置功能的重写
163 def reset(self):
164
165
166 :return:
167
168 try:
169 self.findElement(*self.memberNumNamePhone[0]).clear()
170 self.findElement(*self.memberNumNamePhone[1]).clear()
171 self.findElement(*self.memberNumNamePhone[2]).clear()
172 except Exception:
173 log.logger.exception(reset fail, exc_infoTrue)
174 raise
175 else:
176 log.logger.info(reset [%s]-[%s]-[%s] success % (
177 self.memberNumNamePhone[0], self.memberNumNamePhone[1], self.memberNumNamePhone[2]))
178
179
180 if __name__ __main__:
181 pass会员档案查询用例 1 2 Code description会员档案查询 testcase3 Create time4 Developer5 6 7 import random8 import time9 from selenium.webdriver.common.action_chains import ActionChains10 from retail.test_case.models.myunit import MyunitTest11 from retail.test_case.page_obj.memeberquery_page import MemberQuery12 13 class MemberQuery_TC(MyunitTest):14 15 会员档案查询模块测试用例16 17 #unittest.skip(dont run the test case)18 def test_member_check_ui(self):19 会员档案查询页面显示正确20 menu MemberQuery(self.driver) # 实例化会员查询页面21 self.login.loginFunc()22 menu.memberQueryMenu() # 查找会员档案查询菜单23 elements menu.findElements(*menu.uiElements)24 ele_list []25 for eles in elements:26 if eles.text !:27 ele_list.append(eles.text)28 self.assertEqual(查询条件, ele_list[0])29 self.assertEqual(会员信息明细, ele_list[1])30 self.assertEqual(积分变化明细, ele_list[2])31 32 33 def test_member_type(self):34 会员类型下拉列表项正确35 menu MemberQuery(self.driver) # 实例化会员查询页面36 self.login.loginFunc()# 登录37 menu.memberQueryMenu() # 查找会员档案查询菜单38 menu.selectMemberType()39 list_type []40 for member_type in menu.memberTypeNum: # 循环遍历会员类型下拉列表41 text, memeber_type_level menu.memberTypeLevelOption(*member_type)42 list_type.append(text)43 self.assertEqual(个人会员, list_type[0])44 self.assertEqual(企业会员, list_type[1])45 self.assertEqual(其它, list_type[2])46 47 def test_member_level(self):48 会员级别下拉列表项正确49 menu MemberQuery(self.driver) # 实例化会员查询页面50 self.login.loginFunc() # 登录51 menu.memberQueryMenu() # 查找会员档案查询菜单52 menu.selectMemberLevel()53 list_level []54 for member_level in menu.memberLevelNum: # 循环遍历会员级别下拉列表55 text, memeber_type_level menu.memberTypeLevelOption(*member_level)56 list_level.append(text)57 self.assertEqual(标准会员, list_level[0])58 self.assertEqual(黄金会员, list_level[1])59 self.assertEqual(铂金会员, list_level[2])60 self.assertEqual(钻石会员, list_level[3])61 62 # ............................................................................................#63 # 对页面的条件进行组合后单击查询按钮。这是一个大数据量的操作因此不对返回数据做校验只看本次组合的条件在页面是否可正常使用。64 # 如果查询失败系统会有弹出框提示失败原因这个应该很好理解的。65 # 我们抓取这个框是否在一定的时间内出现如果出现则判定本次查询失败记录用例结果。66 # ............................................................................................#67 68 def test_member_query_failed(self):69 默认条件查询成功70 menu MemberQuery(self.driver) # 实例化会员档案查询页面71 self.login.loginFunc() # 登录72 menu.memberQueryMenu() # 找到会员查询页面73 menu.cQueryResetBtn(*menu.queryResetBtn[0]) # 点击[查询]74 flag menu.isElementExist(menu.qFailerr) # 断言错误提示框75 self.assertFalse(flag, msg查询失败) # flag为false时断言成功 无提示框说明默认查询成功76 77 def test_alone_query_1(self):78 按会员编号,会员姓名,手机号码单一条件查询79 menu MemberQuery(self.driver) # 实例化会员档案查询页面80 self.login.loginFunc() # 登录81 menu.memberQueryMenu() # 找到会员档案查询页面82 for num_name_phone in menu.memberNumNamePhone:83 menu.reset() # 重置84 for value in menu.valuesList:85 menu.iQueryCondition(num_name_phone,value)86 menu.cQueryResetBtn(*menu.queryResetBtn[0]) # 点击[查询]87 time.sleep(3)88 flag menu.isElementExist(menu.qFailerr)89 if flag:90 self.assertTrue(flag, 提示框不存在查询成功)91 menu.accept(*menu.confirmBtn)92 else:93 self.assertFalse(flag, 提示框存在查询失败)94 95 def test_alone_query_2(self):96 按会员类型单一查询97 menu MemberQuery(self.driver) # 实例化会员档案查询页面98 self.login.loginFunc() # 登录99 menu.memberQueryMenu() # 找到会员档案查询页面
100 for me_type in menu.memberTypeNum:
101 menu.selectMemberType() # 点击[会员类型]
102 text, member_type_level menu.memberTypeLevelOption(*me_type) # 遍历每一个下拉选项
103 ActionChains(self.driver).move_to_element(member_type_level).perform() # 鼠标移动到下拉选项上
104 member_type_level.click() # 选中下拉选项
105 menu.cQueryResetBtn(*menu.queryResetBtn[0]) # 点击[查询]
106 time.sleep(3)
107 flag menu.isElementExist(menu.qFailerr) # 判断查询成功
108 self.assertFalse(flag, 提示框存在查询失败)
109
110 def test_alone_query_3(self):
111 按会员级别单一查询
112 menu MemberQuery(self.driver) # 实例化会员档案查询页面
113 self.login.loginFunc() # 登录
114 menu.memberQueryMenu() # 找到会员档案查询页面
115 for me_level in menu.memberLevelNum:
116 menu.selectMemberLevel() # 点击[会员级别]
117 text, member_level menu.memberTypeLevelOption(*me_level) # 遍历每一个下拉选项
118 ActionChains(self.driver).move_to_element(member_level).perform() # 鼠标移动到下拉选项上
119 member_level.click() # 选中下拉选项
120 menu.cQueryResetBtn(*menu.queryResetBtn[0]) # 点击[查询]
121 time.sleep(3)
122 flag menu.isElementExist(menu.qFailerr) # 判断查询成功
123 self.assertFalse(flag, 提示框存在查询成功)
124
125 def test_reset(self):
126 重置功能校验
127 menu MemberQuery(self.driver) # 实例化会员档案查询页面
128 self.login.loginFunc() # 登录
129 menu.memberQueryMenu() # 找到会员档案查询页面
130 # 3个条件输入框随机输入数据
131 for inputBox in menu.memberNumNamePhone:
132 menu.iQueryCondition(inputBox,random.choice(menu.valuesList))
133 #会员类型下拉列表中随机选择一项
134 menu.selectMemberType()
135 text_type, member_type menu.memberTypeLevelOption(*(random.choice(menu.memberTypeNum)))
136 ActionChains(self.driver).move_to_element(member_type).perform() # 鼠标移动到下拉选项上
137 member_type.click()
138
139 # menu.selectMemberLevel()
140 # text_level, member_level menu.memberTypeLevelOption(*(random.choice(menu.member_level_num)))
141 # #ActionChains(self.driver).move_to_element(member_level).perform()
142 # member_level.click()
143
144
145 # 点击【重置】
146 menu.cQueryResetBtn(*menu.queryResetBtn[1])
147 # 获取前3个输入框的内容
148 text_list []
149 for input_box in menu.memberNumNamePhone:
150 text menu.getInputboxValue(*input_box)
151 text_list.append(text)
152 # 获取会员类型
153 type_type_text menu.getInputboxValue(*menu.memberTypeBtn)
154 text_list.append(type_type_text)
155
156 # type_level_text menu.getInputboxValue(*menu.member_level_btn)
157 # text_list.append(type_level_text)
158
159 # 断言每一个条件框是否为空 为空就通过
160 for get_attr in text_list:
161 self.assertEqual(,get_attr)
162
163 if __name__ __main__:
164 pass执行测试用例 1 #! user/bin/python2 3 4 Code descriptionauto run test case5 Create time6 Developer7 8 9 import unittest
10 import time
11 from BeautifulReport import BeautifulReport
12 from retail.config.conf import *
13 from retail.test_case.models.testreport import testreport
14
15 # TODO : will be use jenkins continuous intergration teachnology manage the auto project
16 if __name__ __main__:
17
18 # currTime time.strftime(%Y-%m-%d %H_%M_%S)
19 # filename currTime .html
20 # # 第一种测试报告
21 # test_suite unittest.defaultTestLoader.discover(tcPath, pattern*Tc.py)
22 # result BeautifulReport(test_suite)
23 # result.report(filename filename, descriptiontest report, log_pathreportPath)
24
25 # # 第二种测试报告
26 runner, fp, fileName testreport()
27 test_suite unittest.defaultTestLoader.discover(tcPath, patternLoginTc.py)
28 runner.run(test_suite)
29 fp.close()from BeautifulReport import BeautifulReport 这个报告需要自己网上找一下(很多类似的测试报告源码不一定非使用本案例中的报告模板)
报告展示
有付出才有汇报接下来看下们的成果
1.截图
创建规则失败时截图 登录成功截图 用例执行日志
2018-10-12 15:39:17,916 - doconfIni.py:[36] - [INFO] - read excel value [D:\Petrochina_Retail_Test_Project] successed!
2018-10-12 15:39:19,119 - testreport.py:[35] - [INFO] - successed to generate test report [D:\Petrochina_Retail_Test_Project\retail\report\TestReport\report2018-10-12 15_39_19.html]
2018-10-12 15:39:21,469 - doexcel.py:[31] - [INFO] - initing class ReadExcel
2018-10-12 15:39:21,481 - doexcel.py:[31] - [INFO] - initing class ReadExcel
2018-10-12 15:39:21,493 - doexcel.py:[31] - [INFO] - initing class ReadExcel
2018-10-12 15:39:21,504 - doexcel.py:[31] - [INFO] - initing class ReadExcel
2018-10-12 15:39:21,505 - doexcel.py:[46] - [INFO] - reading value [权限管理] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:39:21,538 - doexcel.py:[46] - [INFO] - reading value [会员档案] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:39:21,538 - doexcel.py:[46] - [INFO] - reading value [积分消费查询] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:39:21,539 - doexcel.py:[46] - [INFO] - reading value [功能演示] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:39:21,539 - doexcel.py:[46] - [INFO] - reading value [待办工作] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:39:21,539 - doexcel.py:[46] - [INFO] - reading value [报表] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:39:21,539 - doexcel.py:[46] - [INFO] - reading value [积分规则/活动查询] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:39:21,540 - doexcel.py:[46] - [INFO] - reading value [积分规则/活动申请] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:39:21,540 - doexcel.py:[46] - [INFO] - reading value [username] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:39:21,540 - doexcel.py:[46] - [INFO] - reading value [password] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:39:21,541 - doexcel.py:[46] - [INFO] - reading value [loginSubmitButton] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:39:21,541 - doexcel.py:[46] - [INFO] - reading value [checkcookie] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:39:21,541 - doexcel.py:[46] - [INFO] - reading value [inputTdRight] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:39:21,541 - doexcel.py:[46] - [INFO] - reading value [logout] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:39:21,541 - doexcel.py:[46] - [INFO] - reading value [rmln] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:39:21,542 - doexcel.py:[46] - [INFO] - reading value [qwert1234!#] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:39:21,542 - doexcel.py:[46] - [INFO] - reading value [rmlv] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:39:21,542 - doexcel.py:[46] - [INFO] - reading value [qwert1234!#] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:39:21,542 - doexcel.py:[46] - [INFO] - reading value [] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:39:21,542 - doexcel.py:[46] - [INFO] - reading value [qwert1234!#] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:39:21,542 - doexcel.py:[46] - [INFO] - reading value [rml] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:39:21,542 - doexcel.py:[46] - [INFO] - reading value [qwert1234!] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:39:21,542 - doexcel.py:[46] - [INFO] - reading value [rmln] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:39:21,543 - doexcel.py:[46] - [INFO] - reading value [] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:39:21,543 - doexcel.py:[46] - [INFO] - reading value [rmln] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:39:21,543 - doexcel.py:[46] - [INFO] - reading value [quert1234] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:39:21,543 - doexcel.py:[46] - [INFO] - reading value [] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:39:21,543 - doexcel.py:[46] - [INFO] - reading value [] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:39:41,168 - driver.py:[27] - [INFO] - fireFoxDriver:found the Firefox driver [selenium.webdriver.firefox.webdriver.WebDriver (sessiond446da40-ae28-4fff-bfd3-2c9045a5c4cc)] successed !
2018-10-12 15:39:44,832 - myunit.py:[25] - [INFO] - opened the browser successed!
2018-10-12 15:39:45,541 - base_page.py:[56] - [INFO] - _open is accessing address http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp at line[46]
2018-10-12 15:39:45,541 - base_page.py:[65] - [INFO] - http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp loading successed!
2018-10-12 15:39:45,542 - myunit.py:[35] - [INFO] - ************************starting run test cases************************
2018-10-12 15:39:45,594 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDE828 had already find the element (id, username)
2018-10-12 15:39:45,719 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value [rmln]
2018-10-12 15:39:47,798 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDE828 had already find the element (id, password)
2018-10-12 15:39:47,866 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value [qwert1234!#]
2018-10-12 15:39:49,923 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDE828 had already find the element (id, loginSubmitButton)
2018-10-12 15:39:51,173 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 15:39:53,227 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDE828 had already find the element (id, logout)
2018-10-12 15:39:53,624 - login_page.py:[95] - [INFO] - quit
2018-10-12 15:39:53,674 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDE828 had already find the element (id, username)
2018-10-12 15:39:53,726 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value [rmlv]
2018-10-12 15:39:55,785 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDE828 had already find the element (id, password)
2018-10-12 15:39:55,846 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value [qwert1234!#]
2018-10-12 15:39:57,906 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDE828 had already find the element (id, loginSubmitButton)
2018-10-12 15:39:58,103 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 15:40:00,143 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDE828 had already find the element (id, inputTdRight)
2018-10-12 15:40:00,189 - login_page.py:[53] - [INFO] - login failed : 输入的用户名或密码错误请重新输入!
2018-10-12 15:40:00,213 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDE828 had already find the element (id, username)
2018-10-12 15:40:00,248 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value []
2018-10-12 15:40:02,291 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDE828 had already find the element (id, password)
2018-10-12 15:40:02,339 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value [qwert1234!#]
2018-10-12 15:40:04,364 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDE828 had already find the element (id, loginSubmitButton)
2018-10-12 15:40:04,439 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 15:40:06,484 - login_page.py:[70] - [INFO] - login failed ,handleAlert handle alert successed alert info: 请填写用户名!
2018-10-12 15:40:06,525 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDE828 had already find the element (id, username)
2018-10-12 15:40:06,565 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value [rml]
2018-10-12 15:40:08,611 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDE828 had already find the element (id, password)
2018-10-12 15:40:08,659 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value [qwert1234!]
2018-10-12 15:40:10,708 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDE828 had already find the element (id, loginSubmitButton)
2018-10-12 15:40:10,878 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 15:40:12,958 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDE828 had already find the element (id, inputTdRight)
2018-10-12 15:40:12,982 - login_page.py:[53] - [INFO] - login failed : 输入的用户名或密码错误请重新输入!
2018-10-12 15:40:13,006 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDE828 had already find the element (id, username)
2018-10-12 15:40:13,048 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value [rmln]
2018-10-12 15:40:15,116 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDE828 had already find the element (id, password)
2018-10-12 15:40:15,148 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value []
2018-10-12 15:40:17,200 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDE828 had already find the element (id, loginSubmitButton)
2018-10-12 15:40:17,248 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 15:40:19,313 - login_page.py:[70] - [INFO] - login failed ,handleAlert handle alert successed alert info: 请填写用户密码!
2018-10-12 15:40:19,351 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDE828 had already find the element (id, username)
2018-10-12 15:40:19,392 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value [rmln]
2018-10-12 15:40:21,445 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDE828 had already find the element (id, password)
2018-10-12 15:40:21,506 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value [quert1234]
2018-10-12 15:40:23,555 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDE828 had already find the element (id, loginSubmitButton)
2018-10-12 15:40:23,718 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 15:40:25,810 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDE828 had already find the element (id, inputTdRight)
2018-10-12 15:40:25,847 - login_page.py:[53] - [INFO] - login failed : 输入的用户名或密码错误请重新输入!
2018-10-12 15:40:25,872 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDE828 had already find the element (id, username)
2018-10-12 15:40:25,906 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value []
2018-10-12 15:40:27,968 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDE828 had already find the element (id, password)
2018-10-12 15:40:28,009 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value []
2018-10-12 15:40:30,044 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDE828 had already find the element (id, loginSubmitButton)
2018-10-12 15:40:30,079 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 15:40:32,140 - login_page.py:[70] - [INFO] - login failed ,handleAlert handle alert successed alert info: 请填写用户名!
2018-10-12 15:40:32,140 - LoginTc.py:[108] - [INFO] - test_login-run completed! please check the test report
2018-10-12 15:40:32,599 - myunit.py:[43] - [INFO] - ************************test case run completed************************
2018-10-12 15:40:32,838 - base_page.py:[56] - [INFO] - _open is accessing address http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp at line[46]
2018-10-12 15:40:32,838 - base_page.py:[65] - [INFO] - http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp loading successed!
2018-10-12 15:40:32,838 - myunit.py:[35] - [INFO] - ************************starting run test cases************************
2018-10-12 15:40:32,881 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDE7B8 had already find the element (id, username)
2018-10-12 15:40:32,923 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value [rmln]
2018-10-12 15:40:32,947 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDE7B8 had already find the element (id, password)
2018-10-12 15:40:32,990 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value [quert1234]
2018-10-12 15:40:33,012 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDE7B8 had already find the element (id, loginSubmitButton)
2018-10-12 15:40:33,204 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 15:40:33,238 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDE7B8 had already find the element (id, inputTdRight)
2018-10-12 15:40:33,265 - login_page.py:[53] - [INFO] - login failed : 输入的用户名或密码错误请重新输入!
2018-10-12 15:40:33,265 - LoginTc.py:[49] - [INFO] - test_login_failed_incorrect_password-run completed! please check the test report
2018-10-12 15:40:33,714 - myunit.py:[43] - [INFO] - ************************test case run completed************************
2018-10-12 15:40:33,945 - base_page.py:[56] - [INFO] - _open is accessing address http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp at line[46]
2018-10-12 15:40:33,945 - base_page.py:[65] - [INFO] - http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp loading successed!
2018-10-12 15:40:33,946 - myunit.py:[35] - [INFO] - ************************starting run test cases************************
2018-10-12 15:40:33,976 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDEEF0 had already find the element (id, username)
2018-10-12 15:40:34,020 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value [rmlv]
2018-10-12 15:40:34,044 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDEEF0 had already find the element (id, password)
2018-10-12 15:40:34,084 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value [qwert1234!#]
2018-10-12 15:40:34,106 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDEEF0 had already find the element (id, loginSubmitButton)
2018-10-12 15:40:34,270 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 15:40:34,307 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDEEF0 had already find the element (id, inputTdRight)
2018-10-12 15:40:34,336 - login_page.py:[53] - [INFO] - login failed : 输入的用户名或密码错误请重新输入!
2018-10-12 15:40:34,336 - LoginTc.py:[40] - [INFO] - test_login_failed_incorrect_username-run completed! please check the test report
2018-10-12 15:40:34,872 - myunit.py:[43] - [INFO] - ************************test case run completed************************
2018-10-12 15:40:35,114 - base_page.py:[56] - [INFO] - _open is accessing address http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp at line[46]
2018-10-12 15:40:35,114 - base_page.py:[65] - [INFO] - http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp loading successed!
2018-10-12 15:40:35,114 - myunit.py:[35] - [INFO] - ************************starting run test cases************************
2018-10-12 15:40:35,146 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDEE48 had already find the element (id, username)
2018-10-12 15:40:35,187 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value [rmln]
2018-10-12 15:40:35,210 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDEE48 had already find the element (id, password)
2018-10-12 15:40:35,240 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value []
2018-10-12 15:40:35,261 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDEE48 had already find the element (id, loginSubmitButton)
2018-10-12 15:40:35,288 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 15:40:35,325 - login_page.py:[70] - [INFO] - login failed ,handleAlert handle alert successed alert info: 请填写用户密码!
2018-10-12 15:40:35,325 - LoginTc.py:[65] - [INFO] - test_login_failed_password_blank-run completed! please check the test report
2018-10-12 15:40:35,756 - myunit.py:[43] - [INFO] - ************************test case run completed************************
2018-10-12 15:40:35,988 - base_page.py:[56] - [INFO] - _open is accessing address http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp at line[46]
2018-10-12 15:40:35,988 - base_page.py:[65] - [INFO] - http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp loading successed!
2018-10-12 15:40:35,988 - myunit.py:[35] - [INFO] - ************************starting run test cases************************
2018-10-12 15:40:36,017 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDEFD0 had already find the element (id, username)
2018-10-12 15:40:36,062 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value [rml]
2018-10-12 15:40:36,095 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDEFD0 had already find the element (id, password)
2018-10-12 15:40:36,130 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value [rmln]
2018-10-12 15:40:36,156 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDEFD0 had already find the element (id, loginSubmitButton)
2018-10-12 15:40:36,336 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 15:40:36,370 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDEFD0 had already find the element (id, inputTdRight)
2018-10-12 15:40:36,397 - login_page.py:[53] - [INFO] - login failed : 输入的用户名或密码错误请重新输入!
2018-10-12 15:40:36,397 - LoginTc.py:[73] - [INFO] - test_login_failed_unpw_incorrect-run completed! please check the test report
2018-10-12 15:40:36,869 - myunit.py:[43] - [INFO] - ************************test case run completed************************
2018-10-12 15:40:37,103 - base_page.py:[56] - [INFO] - _open is accessing address http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp at line[46]
2018-10-12 15:40:37,103 - base_page.py:[65] - [INFO] - http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp loading successed!
2018-10-12 15:40:37,103 - myunit.py:[35] - [INFO] - ************************starting run test cases************************
2018-10-12 15:40:37,142 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19D9C6A0 had already find the element (id, username)
2018-10-12 15:40:37,180 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value []
2018-10-12 15:40:37,211 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19D9C6A0 had already find the element (id, password)
2018-10-12 15:40:37,245 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value []
2018-10-12 15:40:37,268 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19D9C6A0 had already find the element (id, loginSubmitButton)
2018-10-12 15:40:37,297 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 15:40:37,328 - login_page.py:[70] - [INFO] - login failed ,handleAlert handle alert successed alert info: 请填写用户名!
2018-10-12 15:40:37,328 - LoginTc.py:[57] - [INFO] - test_login_failed_username_password_blank-run completed! please check the test report
2018-10-12 15:40:37,789 - myunit.py:[43] - [INFO] - ************************test case run completed************************
2018-10-12 15:40:38,034 - base_page.py:[56] - [INFO] - _open is accessing address http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp at line[46]
2018-10-12 15:40:38,035 - base_page.py:[65] - [INFO] - http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp loading successed!
2018-10-12 15:40:38,035 - myunit.py:[35] - [INFO] - ************************starting run test cases************************
2018-10-12 15:40:38,070 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDEE10 had already find the element (id, username)
2018-10-12 15:40:38,113 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value [rmln]
2018-10-12 15:40:38,135 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDEE10 had already find the element (id, password)
2018-10-12 15:40:38,170 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value [qwert1234!#]
2018-10-12 15:40:38,192 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000022A19CDEE10 had already find the element (id, loginSubmitButton)
2018-10-12 15:40:38,718 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 15:40:38,867 - base_page.py:[219] - [INFO] - the file [correct_username_password_pass.png] save screenshot successed under [D:\Petrochina_Retail_Test_Project\retail\report\image\pass]
2018-10-12 15:40:38,867 - LoginTc.py:[32] - [INFO] - test_login_success_correct_username_password-run completed! please check the test report
2018-10-12 15:40:39,853 - myunit.py:[43] - [INFO] - ************************test case run completed************************
2018-10-12 15:40:40,741 - myunit.py:[49] - [INFO] - quit the browser success!
2018-10-12 15:55:32,579 - doconfIni.py:[36] - [INFO] - read excel value [D:\Petrochina_Retail_Test_Project] successed!
2018-10-12 15:55:32,650 - testreport.py:[35] - [INFO] - successed to generate test report [D:\Petrochina_Retail_Test_Project\retail\report\TestReport\report2018-10-12 15_55_32.html]
2018-10-12 15:55:32,799 - doexcel.py:[31] - [INFO] - initing class ReadExcel
2018-10-12 15:55:32,809 - doexcel.py:[31] - [INFO] - initing class ReadExcel
2018-10-12 15:55:32,823 - doexcel.py:[31] - [INFO] - initing class ReadExcel
2018-10-12 15:55:32,834 - doexcel.py:[31] - [INFO] - initing class ReadExcel
2018-10-12 15:55:32,834 - doexcel.py:[46] - [INFO] - reading value [权限管理] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:55:32,834 - doexcel.py:[46] - [INFO] - reading value [会员档案] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:55:32,834 - doexcel.py:[46] - [INFO] - reading value [积分消费查询] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:55:32,834 - doexcel.py:[46] - [INFO] - reading value [功能演示] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:55:32,834 - doexcel.py:[46] - [INFO] - reading value [待办工作] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:55:32,834 - doexcel.py:[46] - [INFO] - reading value [报表] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:55:32,834 - doexcel.py:[46] - [INFO] - reading value [积分规则/活动查询] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:55:32,834 - doexcel.py:[46] - [INFO] - reading value [积分规则/活动申请] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:55:32,835 - doexcel.py:[46] - [INFO] - reading value [username] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:55:32,835 - doexcel.py:[46] - [INFO] - reading value [password] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:55:32,835 - doexcel.py:[46] - [INFO] - reading value [loginSubmitButton] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:55:32,835 - doexcel.py:[46] - [INFO] - reading value [checkcookie] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:55:32,835 - doexcel.py:[46] - [INFO] - reading value [inputTdRight] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:55:32,835 - doexcel.py:[46] - [INFO] - reading value [logout] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:55:32,835 - doexcel.py:[46] - [INFO] - reading value [rmln] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:55:32,835 - doexcel.py:[46] - [INFO] - reading value [qwert1234!#] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:55:32,835 - doexcel.py:[46] - [INFO] - reading value [rmlv] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:55:32,835 - doexcel.py:[46] - [INFO] - reading value [qwert1234!#] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:55:32,835 - doexcel.py:[46] - [INFO] - reading value [] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:55:32,835 - doexcel.py:[46] - [INFO] - reading value [qwert1234!#] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:55:32,836 - doexcel.py:[46] - [INFO] - reading value [rml] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:55:32,836 - doexcel.py:[46] - [INFO] - reading value [qwert1234!] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:55:32,836 - doexcel.py:[46] - [INFO] - reading value [rmln] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:55:32,836 - doexcel.py:[46] - [INFO] - reading value [] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:55:32,836 - doexcel.py:[46] - [INFO] - reading value [rmln] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:55:32,836 - doexcel.py:[46] - [INFO] - reading value [quert1234] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:55:32,836 - doexcel.py:[46] - [INFO] - reading value [] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:55:32,836 - doexcel.py:[46] - [INFO] - reading value [] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:55:42,284 - driver.py:[27] - [INFO] - fireFoxDriver:found the Firefox driver [selenium.webdriver.firefox.webdriver.WebDriver (sessiona6069969-6dab-45c0-a732-2c2f0efa4ca1)] successed !
2018-10-12 15:55:45,801 - myunit.py:[25] - [INFO] - opened the browser successed!
2018-10-12 15:55:46,436 - base_page.py:[56] - [INFO] - _open is accessing address http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp at line[46]
2018-10-12 15:55:46,436 - base_page.py:[65] - [INFO] - http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp loading successed!
2018-10-12 15:55:46,436 - myunit.py:[35] - [INFO] - ************************starting run test cases************************
2018-10-12 15:55:46,502 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4D828 had already find the element (id, username)
2018-10-12 15:55:46,553 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value [rmln]
2018-10-12 15:55:48,591 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4D828 had already find the element (id, password)
2018-10-12 15:55:48,648 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value [qwert1234!#]
2018-10-12 15:55:50,720 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4D828 had already find the element (id, loginSubmitButton)
2018-10-12 15:55:51,787 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 15:55:53,851 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4D828 had already find the element (id, logout)
2018-10-12 15:55:54,136 - login_page.py:[95] - [INFO] - quit
2018-10-12 15:55:54,192 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4D828 had already find the element (id, username)
2018-10-12 15:55:54,239 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value [rmlv]
2018-10-12 15:55:56,295 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4D828 had already find the element (id, password)
2018-10-12 15:55:56,363 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value [qwert1234!#]
2018-10-12 15:55:58,426 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4D828 had already find the element (id, loginSubmitButton)
2018-10-12 15:55:58,615 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 15:56:00,651 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4D828 had already find the element (id, inputTdRight)
2018-10-12 15:56:00,681 - login_page.py:[53] - [INFO] - login failed : 输入的用户名或密码错误请重新输入!
2018-10-12 15:56:00,708 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4D828 had already find the element (id, username)
2018-10-12 15:56:00,741 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value []
2018-10-12 15:56:02,778 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4D828 had already find the element (id, password)
2018-10-12 15:56:02,842 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value [qwert1234!#]
2018-10-12 15:56:04,873 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4D828 had already find the element (id, loginSubmitButton)
2018-10-12 15:56:04,926 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 15:56:06,966 - login_page.py:[70] - [INFO] - login failed ,handleAlert handle alert successed alert info: 请填写用户名!
2018-10-12 15:56:07,003 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4D828 had already find the element (id, username)
2018-10-12 15:56:07,054 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value [rml]
2018-10-12 15:56:09,122 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4D828 had already find the element (id, password)
2018-10-12 15:56:09,182 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value [qwert1234!]
2018-10-12 15:56:11,205 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4D828 had already find the element (id, loginSubmitButton)
2018-10-12 15:56:11,384 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 15:56:13,439 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4D828 had already find the element (id, inputTdRight)
2018-10-12 15:56:13,478 - login_page.py:[53] - [INFO] - login failed : 输入的用户名或密码错误请重新输入!
2018-10-12 15:56:13,504 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4D828 had already find the element (id, username)
2018-10-12 15:56:13,547 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value [rmln]
2018-10-12 15:56:15,585 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4D828 had already find the element (id, password)
2018-10-12 15:56:15,639 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value []
2018-10-12 15:56:17,688 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4D828 had already find the element (id, loginSubmitButton)
2018-10-12 15:56:17,733 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 15:56:19,775 - login_page.py:[70] - [INFO] - login failed ,handleAlert handle alert successed alert info: 请填写用户密码!
2018-10-12 15:56:19,814 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4D828 had already find the element (id, username)
2018-10-12 15:56:19,866 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value [rmln]
2018-10-12 15:56:21,912 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4D828 had already find the element (id, password)
2018-10-12 15:56:21,967 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value [quert1234]
2018-10-12 15:56:24,019 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4D828 had already find the element (id, loginSubmitButton)
2018-10-12 15:56:24,229 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 15:56:26,258 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4D828 had already find the element (id, inputTdRight)
2018-10-12 15:56:26,286 - login_page.py:[53] - [INFO] - login failed : 输入的用户名或密码错误请重新输入!
2018-10-12 15:56:26,309 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4D828 had already find the element (id, username)
2018-10-12 15:56:26,346 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value []
2018-10-12 15:56:28,384 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4D828 had already find the element (id, password)
2018-10-12 15:56:28,430 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value []
2018-10-12 15:56:30,464 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4D828 had already find the element (id, loginSubmitButton)
2018-10-12 15:56:30,503 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 15:56:32,562 - login_page.py:[70] - [INFO] - login failed ,handleAlert handle alert successed alert info: 请填写用户名!
2018-10-12 15:56:32,563 - LoginTc.py:[108] - [INFO] - test_login-run completed! please check the test report
2018-10-12 15:56:33,042 - myunit.py:[43] - [INFO] - ************************test case run completed************************
2018-10-12 15:56:33,298 - base_page.py:[56] - [INFO] - _open is accessing address http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp at line[46]
2018-10-12 15:56:33,299 - base_page.py:[65] - [INFO] - http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp loading successed!
2018-10-12 15:56:33,299 - myunit.py:[35] - [INFO] - ************************starting run test cases************************
2018-10-12 15:56:33,339 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4D7B8 had already find the element (id, username)
2018-10-12 15:56:33,381 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value [rmln]
2018-10-12 15:56:33,405 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4D7B8 had already find the element (id, password)
2018-10-12 15:56:33,448 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value [quert1234]
2018-10-12 15:56:33,472 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4D7B8 had already find the element (id, loginSubmitButton)
2018-10-12 15:56:33,666 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 15:56:33,715 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4D7B8 had already find the element (id, inputTdRight)
2018-10-12 15:56:33,745 - login_page.py:[53] - [INFO] - login failed : 输入的用户名或密码错误请重新输入!
2018-10-12 15:56:33,745 - LoginTc.py:[49] - [INFO] - test_login_failed_incorrect_password-run completed! please check the test report
2018-10-12 15:56:34,212 - myunit.py:[43] - [INFO] - ************************test case run completed************************
2018-10-12 15:56:34,461 - base_page.py:[56] - [INFO] - _open is accessing address http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp at line[46]
2018-10-12 15:56:34,461 - base_page.py:[65] - [INFO] - http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp loading successed!
2018-10-12 15:56:34,461 - myunit.py:[35] - [INFO] - ************************starting run test cases************************
2018-10-12 15:56:34,505 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4DEF0 had already find the element (id, username)
2018-10-12 15:56:34,545 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value [rmlv]
2018-10-12 15:56:34,572 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4DEF0 had already find the element (id, password)
2018-10-12 15:56:34,618 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value [qwert1234!#]
2018-10-12 15:56:34,644 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4DEF0 had already find the element (id, loginSubmitButton)
2018-10-12 15:56:34,826 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 15:56:34,873 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4DEF0 had already find the element (id, inputTdRight)
2018-10-12 15:56:34,897 - login_page.py:[53] - [INFO] - login failed : 输入的用户名或密码错误请重新输入!
2018-10-12 15:56:34,897 - LoginTc.py:[40] - [INFO] - test_login_failed_incorrect_username-run completed! please check the test report
2018-10-12 15:56:35,372 - myunit.py:[43] - [INFO] - ************************test case run completed************************
2018-10-12 15:56:35,708 - base_page.py:[56] - [INFO] - _open is accessing address http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp at line[46]
2018-10-12 15:56:35,709 - base_page.py:[65] - [INFO] - http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp loading successed!
2018-10-12 15:56:35,709 - myunit.py:[35] - [INFO] - ************************starting run test cases************************
2018-10-12 15:56:35,757 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4DE48 had already find the element (id, username)
2018-10-12 15:56:35,818 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value [rmln]
2018-10-12 15:56:35,850 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4DE48 had already find the element (id, password)
2018-10-12 15:56:35,895 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value []
2018-10-12 15:56:35,928 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4DE48 had already find the element (id, loginSubmitButton)
2018-10-12 15:56:35,995 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 15:56:36,034 - login_page.py:[70] - [INFO] - login failed ,handleAlert handle alert successed alert info: 请填写用户密码!
2018-10-12 15:56:36,034 - LoginTc.py:[65] - [INFO] - test_login_failed_password_blank-run completed! please check the test report
2018-10-12 15:56:36,566 - myunit.py:[43] - [INFO] - ************************test case run completed************************
2018-10-12 15:56:36,817 - base_page.py:[56] - [INFO] - _open is accessing address http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp at line[46]
2018-10-12 15:56:36,818 - base_page.py:[65] - [INFO] - http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp loading successed!
2018-10-12 15:56:36,818 - myunit.py:[35] - [INFO] - ************************starting run test cases************************
2018-10-12 15:56:36,878 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4DFD0 had already find the element (id, username)
2018-10-12 15:56:36,920 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value [rml]
2018-10-12 15:56:36,943 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4DFD0 had already find the element (id, password)
2018-10-12 15:56:36,980 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value [rmln]
2018-10-12 15:56:37,014 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4DFD0 had already find the element (id, loginSubmitButton)
2018-10-12 15:56:37,212 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 15:56:37,266 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4DFD0 had already find the element (id, inputTdRight)
2018-10-12 15:56:37,293 - login_page.py:[53] - [INFO] - login failed : 输入的用户名或密码错误请重新输入!
2018-10-12 15:56:37,293 - LoginTc.py:[73] - [INFO] - test_login_failed_unpw_incorrect-run completed! please check the test report
2018-10-12 15:56:37,761 - myunit.py:[43] - [INFO] - ************************test case run completed************************
2018-10-12 15:56:38,069 - base_page.py:[56] - [INFO] - _open is accessing address http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp at line[46]
2018-10-12 15:56:38,070 - base_page.py:[65] - [INFO] - http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp loading successed!
2018-10-12 15:56:38,070 - myunit.py:[35] - [INFO] - ************************starting run test cases************************
2018-10-12 15:56:38,106 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633D0D6A0 had already find the element (id, username)
2018-10-12 15:56:38,154 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value []
2018-10-12 15:56:38,179 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633D0D6A0 had already find the element (id, password)
2018-10-12 15:56:38,217 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value []
2018-10-12 15:56:38,245 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633D0D6A0 had already find the element (id, loginSubmitButton)
2018-10-12 15:56:38,299 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 15:56:38,332 - login_page.py:[70] - [INFO] - login failed ,handleAlert handle alert successed alert info: 请填写用户名!
2018-10-12 15:56:38,332 - LoginTc.py:[57] - [INFO] - test_login_failed_username_password_blank-run completed! please check the test report
2018-10-12 15:56:38,856 - myunit.py:[43] - [INFO] - ************************test case run completed************************
2018-10-12 15:56:39,117 - base_page.py:[56] - [INFO] - _open is accessing address http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp at line[46]
2018-10-12 15:56:39,117 - base_page.py:[65] - [INFO] - http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp loading successed!
2018-10-12 15:56:39,117 - myunit.py:[35] - [INFO] - ************************starting run test cases************************
2018-10-12 15:56:39,161 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4DE10 had already find the element (id, username)
2018-10-12 15:56:39,208 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value [rmln]
2018-10-12 15:56:39,231 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4DE10 had already find the element (id, password)
2018-10-12 15:56:39,283 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value [qwert1234!#]
2018-10-12 15:56:39,308 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x000001A633C4DE10 had already find the element (id, loginSubmitButton)
2018-10-12 15:56:40,038 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 15:56:40,125 - base_page.py:[219] - [INFO] - the file [correct_username_password_pass.png] save screenshot successed under [D:\Petrochina_Retail_Test_Project\retail\report\image\pass]
2018-10-12 15:56:40,126 - LoginTc.py:[32] - [INFO] - test_login_success_correct_username_password-run completed! please check the test report
2018-10-12 15:56:41,187 - myunit.py:[43] - [INFO] - ************************test case run completed************************
2018-10-12 15:56:42,002 - myunit.py:[49] - [INFO] - quit the browser success!
2018-10-12 15:59:49,135 - doconfIni.py:[36] - [INFO] - read excel value [D:\Petrochina_Retail_Test_Project] successed!
2018-10-12 15:59:49,202 - testreport.py:[35] - [INFO] - successed to generate test report [D:\Petrochina_Retail_Test_Project\retail\report\TestReport\report2018-10-12 15_59_49.html]
2018-10-12 15:59:49,356 - doexcel.py:[31] - [INFO] - initing class ReadExcel
2018-10-12 15:59:49,366 - doexcel.py:[31] - [INFO] - initing class ReadExcel
2018-10-12 15:59:49,379 - doexcel.py:[31] - [INFO] - initing class ReadExcel
2018-10-12 15:59:49,389 - doexcel.py:[31] - [INFO] - initing class ReadExcel
2018-10-12 15:59:49,389 - doexcel.py:[46] - [INFO] - reading value [权限管理] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:59:49,389 - doexcel.py:[46] - [INFO] - reading value [会员档案] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:59:49,390 - doexcel.py:[46] - [INFO] - reading value [积分消费查询] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:59:49,390 - doexcel.py:[46] - [INFO] - reading value [功能演示] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:59:49,390 - doexcel.py:[46] - [INFO] - reading value [待办工作] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:59:49,390 - doexcel.py:[46] - [INFO] - reading value [报表] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:59:49,390 - doexcel.py:[46] - [INFO] - reading value [积分规则/活动查询] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:59:49,390 - doexcel.py:[46] - [INFO] - reading value [积分规则/活动申请] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:59:49,390 - doexcel.py:[46] - [INFO] - reading value [username] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:59:49,391 - doexcel.py:[46] - [INFO] - reading value [password] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:59:49,391 - doexcel.py:[46] - [INFO] - reading value [loginSubmitButton] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:59:49,391 - doexcel.py:[46] - [INFO] - reading value [checkcookie] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:59:49,391 - doexcel.py:[46] - [INFO] - reading value [inputTdRight] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:59:49,391 - doexcel.py:[46] - [INFO] - reading value [logout] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:59:49,391 - doexcel.py:[46] - [INFO] - reading value [rmln] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:59:49,391 - doexcel.py:[46] - [INFO] - reading value [qwert1234!#] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:59:49,391 - doexcel.py:[46] - [INFO] - reading value [rmlv] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:59:49,391 - doexcel.py:[46] - [INFO] - reading value [qwert1234!#] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:59:49,391 - doexcel.py:[46] - [INFO] - reading value [] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:59:49,391 - doexcel.py:[46] - [INFO] - reading value [qwert1234!#] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:59:49,392 - doexcel.py:[46] - [INFO] - reading value [rml] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:59:49,392 - doexcel.py:[46] - [INFO] - reading value [qwert1234!] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:59:49,392 - doexcel.py:[46] - [INFO] - reading value [rmln] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:59:49,392 - doexcel.py:[46] - [INFO] - reading value [] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:59:49,392 - doexcel.py:[46] - [INFO] - reading value [rmln] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:59:49,392 - doexcel.py:[46] - [INFO] - reading value [quert1234] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:59:49,392 - doexcel.py:[46] - [INFO] - reading value [] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 15:59:49,392 - doexcel.py:[46] - [INFO] - reading value [] from excel file [D:\Petrochina_Retail_Test_Project\retail\data\TestData\elementDate.xlsx] completed
2018-10-12 16:00:00,276 - driver.py:[27] - [INFO] - fireFoxDriver:found the Firefox driver [selenium.webdriver.firefox.webdriver.WebDriver (session0a7f2418-d24d-45c5-893d-5914d64ee0d1)] successed !
2018-10-12 16:00:03,791 - myunit.py:[25] - [INFO] - opened the browser successed!
2018-10-12 16:00:04,323 - base_page.py:[56] - [INFO] - _open is accessing address http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp at line[46]
2018-10-12 16:00:04,323 - base_page.py:[65] - [INFO] - http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp loading successed!
2018-10-12 16:00:04,323 - myunit.py:[35] - [INFO] - ************************starting run test cases************************
2018-10-12 16:00:04,368 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06D828 had already find the element (id, username)
2018-10-12 16:00:04,426 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value [rmln]
2018-10-12 16:00:06,504 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06D828 had already find the element (id, password)
2018-10-12 16:00:06,570 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value [qwert1234!#]
2018-10-12 16:00:08,623 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06D828 had already find the element (id, loginSubmitButton)
2018-10-12 16:00:09,623 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 16:00:11,706 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06D828 had already find the element (id, logout)
2018-10-12 16:00:11,943 - login_page.py:[95] - [INFO] - quit
2018-10-12 16:00:12,002 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06D828 had already find the element (id, username)
2018-10-12 16:00:12,049 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value [rmlv]
2018-10-12 16:00:14,080 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06D828 had already find the element (id, password)
2018-10-12 16:00:14,136 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value [qwert1234!#]
2018-10-12 16:00:16,191 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06D828 had already find the element (id, loginSubmitButton)
2018-10-12 16:00:16,407 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 16:00:18,466 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06D828 had already find the element (id, inputTdRight)
2018-10-12 16:00:18,517 - login_page.py:[53] - [INFO] - login failed : 输入的用户名或密码错误请重新输入!
2018-10-12 16:00:18,549 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06D828 had already find the element (id, username)
2018-10-12 16:00:18,587 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value []
2018-10-12 16:00:20,658 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06D828 had already find the element (id, password)
2018-10-12 16:00:20,736 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value [qwert1234!#]
2018-10-12 16:00:22,797 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06D828 had already find the element (id, loginSubmitButton)
2018-10-12 16:00:22,847 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 16:00:24,885 - login_page.py:[70] - [INFO] - login failed ,handleAlert handle alert successed alert info: 请填写用户名!
2018-10-12 16:00:24,918 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06D828 had already find the element (id, username)
2018-10-12 16:00:24,972 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value [rml]
2018-10-12 16:00:27,029 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06D828 had already find the element (id, password)
2018-10-12 16:00:27,107 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value [qwert1234!]
2018-10-12 16:00:29,135 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06D828 had already find the element (id, loginSubmitButton)
2018-10-12 16:00:29,302 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 16:00:31,367 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06D828 had already find the element (id, inputTdRight)
2018-10-12 16:00:31,395 - login_page.py:[53] - [INFO] - login failed : 输入的用户名或密码错误请重新输入!
2018-10-12 16:00:31,420 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06D828 had already find the element (id, username)
2018-10-12 16:00:31,466 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value [rmln]
2018-10-12 16:00:33,497 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06D828 had already find the element (id, password)
2018-10-12 16:00:33,534 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value []
2018-10-12 16:00:35,585 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06D828 had already find the element (id, loginSubmitButton)
2018-10-12 16:00:35,640 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 16:00:37,692 - login_page.py:[70] - [INFO] - login failed ,handleAlert handle alert successed alert info: 请填写用户密码!
2018-10-12 16:00:37,727 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06D828 had already find the element (id, username)
2018-10-12 16:00:37,794 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value [rmln]
2018-10-12 16:00:39,827 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06D828 had already find the element (id, password)
2018-10-12 16:00:39,887 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value [quert1234]
2018-10-12 16:00:41,983 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06D828 had already find the element (id, loginSubmitButton)
2018-10-12 16:00:42,178 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 16:00:44,234 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06D828 had already find the element (id, inputTdRight)
2018-10-12 16:00:44,277 - login_page.py:[53] - [INFO] - login failed : 输入的用户名或密码错误请重新输入!
2018-10-12 16:00:44,311 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06D828 had already find the element (id, username)
2018-10-12 16:00:44,350 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value []
2018-10-12 16:00:46,397 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06D828 had already find the element (id, password)
2018-10-12 16:00:46,440 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value []
2018-10-12 16:00:48,476 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06D828 had already find the element (id, loginSubmitButton)
2018-10-12 16:00:48,512 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 16:00:50,555 - login_page.py:[70] - [INFO] - login failed ,handleAlert handle alert successed alert info: 请填写用户名!
2018-10-12 16:00:50,555 - LoginTc.py:[108] - [INFO] - test_login-run completed! please check the test report
2018-10-12 16:00:51,044 - myunit.py:[43] - [INFO] - ************************test case run completed************************
2018-10-12 16:00:51,319 - base_page.py:[56] - [INFO] - _open is accessing address http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp at line[46]
2018-10-12 16:00:51,319 - base_page.py:[65] - [INFO] - http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp loading successed!
2018-10-12 16:00:51,319 - myunit.py:[35] - [INFO] - ************************starting run test cases************************
2018-10-12 16:00:51,362 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06D7B8 had already find the element (id, username)
2018-10-12 16:00:51,407 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value [rmln]
2018-10-12 16:00:51,430 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06D7B8 had already find the element (id, password)
2018-10-12 16:00:51,477 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value [quert1234]
2018-10-12 16:00:51,500 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06D7B8 had already find the element (id, loginSubmitButton)
2018-10-12 16:00:51,693 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 16:00:51,742 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06D7B8 had already find the element (id, inputTdRight)
2018-10-12 16:00:51,773 - login_page.py:[53] - [INFO] - login failed : 输入的用户名或密码错误请重新输入!
2018-10-12 16:00:51,773 - LoginTc.py:[49] - [INFO] - test_login_failed_incorrect_password-run completed! please check the test report
2018-10-12 16:00:52,193 - myunit.py:[43] - [INFO] - ************************test case run completed************************
2018-10-12 16:00:52,405 - base_page.py:[56] - [INFO] - _open is accessing address http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp at line[46]
2018-10-12 16:00:52,406 - base_page.py:[65] - [INFO] - http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp loading successed!
2018-10-12 16:00:52,406 - myunit.py:[35] - [INFO] - ************************starting run test cases************************
2018-10-12 16:00:52,444 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06DEF0 had already find the element (id, username)
2018-10-12 16:00:52,487 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value [rmlv]
2018-10-12 16:00:52,512 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06DEF0 had already find the element (id, password)
2018-10-12 16:00:52,566 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value [qwert1234!#]
2018-10-12 16:00:52,594 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06DEF0 had already find the element (id, loginSubmitButton)
2018-10-12 16:00:52,816 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 16:00:52,863 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06DEF0 had already find the element (id, inputTdRight)
2018-10-12 16:00:52,891 - login_page.py:[53] - [INFO] - login failed : 输入的用户名或密码错误请重新输入!
2018-10-12 16:00:52,892 - LoginTc.py:[40] - [INFO] - test_login_failed_incorrect_username-run completed! please check the test report
2018-10-12 16:00:53,344 - myunit.py:[43] - [INFO] - ************************test case run completed************************
2018-10-12 16:00:53,579 - base_page.py:[56] - [INFO] - _open is accessing address http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp at line[46]
2018-10-12 16:00:53,580 - base_page.py:[65] - [INFO] - http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp loading successed!
2018-10-12 16:00:53,580 - myunit.py:[35] - [INFO] - ************************starting run test cases************************
2018-10-12 16:00:53,620 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06DE48 had already find the element (id, username)
2018-10-12 16:00:53,663 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value [rmln]
2018-10-12 16:00:53,690 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06DE48 had already find the element (id, password)
2018-10-12 16:00:53,728 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value []
2018-10-12 16:00:53,757 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06DE48 had already find the element (id, loginSubmitButton)
2018-10-12 16:00:53,811 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 16:00:53,849 - login_page.py:[70] - [INFO] - login failed ,handleAlert handle alert successed alert info: 请填写用户密码!
2018-10-12 16:00:53,849 - LoginTc.py:[65] - [INFO] - test_login_failed_password_blank-run completed! please check the test report
2018-10-12 16:00:54,283 - myunit.py:[43] - [INFO] - ************************test case run completed************************
2018-10-12 16:00:54,590 - base_page.py:[56] - [INFO] - _open is accessing address http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp at line[46]
2018-10-12 16:00:54,590 - base_page.py:[65] - [INFO] - http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp loading successed!
2018-10-12 16:00:54,590 - myunit.py:[35] - [INFO] - ************************starting run test cases************************
2018-10-12 16:00:54,637 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06DFD0 had already find the element (id, username)
2018-10-12 16:00:54,678 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value [rml]
2018-10-12 16:00:54,704 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06DFD0 had already find the element (id, password)
2018-10-12 16:00:54,748 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value [rmln]
2018-10-12 16:00:54,777 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06DFD0 had already find the element (id, loginSubmitButton)
2018-10-12 16:00:54,994 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 16:00:55,047 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06DFD0 had already find the element (id, inputTdRight)
2018-10-12 16:00:55,077 - login_page.py:[53] - [INFO] - login failed : 输入的用户名或密码错误请重新输入!
2018-10-12 16:00:55,077 - LoginTc.py:[73] - [INFO] - test_login_failed_unpw_incorrect-run completed! please check the test report
2018-10-12 16:00:55,512 - myunit.py:[43] - [INFO] - ************************test case run completed************************
2018-10-12 16:00:55,760 - base_page.py:[56] - [INFO] - _open is accessing address http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp at line[46]
2018-10-12 16:00:55,760 - base_page.py:[65] - [INFO] - http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp loading successed!
2018-10-12 16:00:55,760 - myunit.py:[35] - [INFO] - ************************starting run test cases************************
2018-10-12 16:00:55,806 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C12D6A0 had already find the element (id, username)
2018-10-12 16:00:55,852 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value []
2018-10-12 16:00:55,879 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C12D6A0 had already find the element (id, password)
2018-10-12 16:00:55,915 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value []
2018-10-12 16:00:55,942 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C12D6A0 had already find the element (id, loginSubmitButton)
2018-10-12 16:00:55,973 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 16:00:56,007 - login_page.py:[70] - [INFO] - login failed ,handleAlert handle alert successed alert info: 请填写用户名!
2018-10-12 16:00:56,007 - LoginTc.py:[57] - [INFO] - test_login_failed_username_password_blank-run completed! please check the test report
2018-10-12 16:00:56,485 - myunit.py:[43] - [INFO] - ************************test case run completed************************
2018-10-12 16:00:56,699 - base_page.py:[56] - [INFO] - _open is accessing address http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp at line[46]
2018-10-12 16:00:56,699 - base_page.py:[65] - [INFO] - http://11.11.164.134:9081/rmms/modules/ep.rmms.portal/login/login.jsp loading successed!
2018-10-12 16:00:56,700 - myunit.py:[35] - [INFO] - ************************starting run test cases************************
2018-10-12 16:00:56,739 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06DE10 had already find the element (id, username)
2018-10-12 16:00:56,784 - base_page.py:[118] - [INFO] - inputValue:[(id, username)] is receiveing value [rmln]
2018-10-12 16:00:56,809 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06DE10 had already find the element (id, password)
2018-10-12 16:00:56,861 - base_page.py:[118] - [INFO] - inputValue:[(id, password)] is receiveing value [qwert1234!#]
2018-10-12 16:00:56,903 - base_page.py:[83] - [INFO] - The page of retail.test_case.page_obj.login_page.LoginPage object at 0x0000015F8C06DE10 had already find the element (id, loginSubmitButton)
2018-10-12 16:00:57,456 - login_page.py:[45] - [INFO] - clickLoginBtn ,logining....!
2018-10-12 16:00:57,583 - base_page.py:[219] - [INFO] - the file [correct_username_password_pass.png] save screenshot successed under [D:\Petrochina_Retail_Test_Project\retail\report\image\pass]
2018-10-12 16:00:57,583 - LoginTc.py:[32] - [INFO] - test_login_success_correct_username_password-run completed! please check the test report
2018-10-12 16:00:58,538 - myunit.py:[43] - [INFO] - ************************test case run completed************************
2018-10-12 16:00:59,037 - myunit.py:[49] - [INFO] - quit the browser success!测试报告 总结
看到结果还是挺有成就感的邮件的截图我没发因为我是内网不知道什么原因邮件服务器连接不上但是使用外网单独测试邮件发送是没什么问题的
就写这么多吧其他页面的用例设计思路都是一样的因为所有的用例彼此都是独立的所以多与少都不影响 要源码的同学可以关注我文末的公众号