class MyTest(unittest.TestCase): """ The base class is for all testcase. """ @classmethod def setUpClass(self): self.logger = Log() self.logger.info( '######################## This App Cases Start #########################' ) self.dr = pyselenium.PySelenium(globalparam.browser) self.dr.set_window(1400, 900) loginpage = viploginPage.viploginPage(self.dr) loginpage.into_login_page() loginpage.input_username(globalparam.user) loginpage.input_password(globalparam.passwd) loginpage.click_login_button() sleep(3) # self.assertIn(u'今目标', self.dr.get_title(), msg='Error!') @classmethod def tearDownClass(self): self.logger = Log() self.dr = pyselenium.PySelenium(globalparam.browser) print('\n') self.dr.quit() self.logger.info( '######################## This App Cases End ###########################' )
class MyTest(unittest.TestCase): """ The base class is for all testcase. """ def setUp(self): self.logger = Log() self.logger.info( '############################### START ###############################' ) #self.dr = pyselenium.PySelenium(globalparam.browser,'127.0.0.1:8080') self.dr = pyselenium.PySelenium(globalparam.browser) self.dr.open(globalparam.server_addr) self.dr.wait(5) sleep(2) self.dr.max_window() self.dr.wait(10) def login_with_cookie(self): with open(globalparam.cookie_path_userweb, 'r') as f: cookie = f.read() # self.dr.origin_driver.delete_all_cookies() cookie = eval(cookie) for c in cookie: self.dr.origin_driver.add_cookie(c) self.dr.origin_driver.refresh() self.dr.wait(10) def tearDown(self): self.dr.quit() self.logger.info( '############################### End ###############################' )
class MyTest(unittest.TestCase): """ The base class is for all testcase. """ def setUp(self): self.logger = Log() self.logger.info('############################### START ###############################') self.dr = pyselenium.PySelenium(globalparam.browser) self.dr.max_window() def tearDown(self): self.dr.quit() self.logger.info('############################### End ###############################')
class ConfRelevance: # 关联文件读取配置 def __init__(self, _path, title): self.log = Log() self.log.info("初始化关联文件") config = configparser.ConfigParser() config.read(_path, encoding="utf-8") self.host = config[title] def get_relevance_conf(self): relevance = dict() self.log.debug("读取初始关联文件内容: %s" % self.host.items()) for key, value in self.host.items(): relevance[key] = value return relevance
class MyTest(unittest.TestCase): """ The base class is for all testcase. """ def setUp(self): self.logger = Log() self.logger.info( '############################### START ###############################' ) browser = ReadConfig().read_config("./config/config.conf", "BROWSER", "browser") self.dr = Browser(browser).driver() self.dr.maximize_window() def tearDown(self): self.dr.quit() self.logger.info( '############################### End ###############################' )
class TestRepositoryDetail(mytest.MyTest): """测试一个repository的详情页面的功能""" def test_01_into_setting_page(self): """vx.x-003 验证进入一个已经存在名为testlzr的repository详情页面""" self.logger = Log() self.logger.info('----开始测试repository详情页面功能----') gh = repositoryDetailPage.repositoryDetailPage(self.dr) gh.into_RepositoryPage_page() self.imgs.append(self.dr.origin_driver.get_screenshot_as_base64()) self.assertIn('testlzr',self.dr.get_text('css->#js-repo-pjax-container > div.pagehead.repohead.instapaper_ignore.readability-menu.experiment-repo-nav > div > h1')) def test_02_delete_repository(self): """vx.x 删除名称为testlzr的repository""" gh = repositoryDetailPage.repositoryDetailPage(self.dr) gh.into_settingPage_name() gh.click_deleteRepostory_button() gh.input_deleteRepository_name("testlzr") gh.click_confirmDelete_Button() self.imgs.append(self.dr.origin_driver.get_screenshot_as_base64()) self.assertIn('Discover interesting projects',self.dr.get_text('css->#dashboard > div > div.Box.p-5.mt-3 > h2'))
class TestMyRepostory(mytest.MyTest): """我的repository""" def test_01_go_newRepostory_page(self): """vx.x-001 验证进入新建repository页面""" self.logger = Log() self.logger.info('----开始测试myRepository页面部分功能----') gh = createNewRepositoryPage.createNewRepositoryPage(self.dr) gh.click_newRepository_button() self.imgs.append(self.dr.origin_driver.get_screenshot_as_base64()) self.assertEqual('Create a New Repository',self.dr.get_title()) def test_02_create_repository(self): """vx.x-002 新建名称为testlzr的repository""" gh = createNewRepositoryPage.createNewRepositoryPage(self.dr) gh.input_repository_name("testlzr") gh.inpit_repository_description("Testing to create a repository") gh.select_visibility_private() gh.click_CreateRepository_button() self.imgs.append(self.dr.origin_driver.get_screenshot_as_base64()) self.assertTrue('css->#js-repo-pjax-container > div.pagehead.repohead.instapaper_ignore.readability-menu.experiment-repo-nav > nav')
class MyTest(unittest.TestCase): """ The base class is for all testcase. """ @classmethod def setUpClass(self): self.logger = Log() self.logger.info('################################################ This App Cases Start ################################################') self.imgs = [] # (可选)初始化截图列表 self.dr = pyselenium.PySelenium(globalparam.browser) self.dr.max_window() loginpage = loginPage.loginPage(self.dr) loginpage.into_login_page() loginpage.input_username(globalparam.user) loginpage.input_password(globalparam.passwd) loginpage.click_login_button() sleep(3) self.logger.info('成功登录' + self.dr.get_title()) @classmethod def tearDownClass(self): self.logger = Log() #self.dr = pyselenium.PySelenium(globalparam.browser) # print('\n') self.dr.quit() self.logger.info('################################################ This App Cases End ################################################')
class MyMobileTest(unittest.TestCase): """ The base class is for all mobile testcase. """ def setUp(self): startTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) self.logger = Log(self._testMethodName) self.logger.info( '############################### START ###############################' ) self.logger.info("测试用例开始执行:" + self._testMethodName + " " + startTime) self.dr = MobileSelenium(globalparam.browser_mobile, self.logger) sleep(2) self.dr.max_window() # self.dr.driver.set_window_size(1200, 900) def tearDown(self): self.dr.print_img() self.logger.info("测试用例执行结束:" + self._testMethodName) self.logger.info( '############################### End ###############################' ) self.dr.quit()
class MyTest(unittest.TestCase): """ The base class is for all pc testcase. """ def setUp(self): startTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) self.logger = Log(self._testMethodName) self.logger.info( '############################### START ###############################' ) self.logger.info("测试用例开始执行:" + self._testMethodName + " " + startTime) self.dr = PySelenium(globalparam.browser, self.logger) sleep(2) self.dr.max_window() def tearDown(self): publicfunction.get_img( self.dr, strftime('%Y-%m-%d_%H_%M_%S') + "_用例执行结束" + ".jpg") self.logger.info("测试用例执行结束:" + self._testMethodName) self.logger.info( '############################### End ###############################' ) self.dr.quit()
class MyLoginedTest(unittest.TestCase): """ The base class is for all testcase. """ def setUp(self): self.logger = Log() self.logger.info('############################### START ###############################') self.dr = pyselenium.PySelenium(globalparam.browser) self.dr.max_window() self.dr.open(config.url) self.logger.info('打开{}'.format(config.url)) u_index = UtomarketIndexPage.IndexPage(self.dr) u_login = u_index.click_login_btn() u_login.login(config.username, '3201') def tearDown(self): self.dr.quit() self.logger.info('############################### End ###############################')
def __init__(self): log = Log() log.info("获取环境配置信息") # 读取配置文件,返回字典格式 self.data = ConfRelevance(CONF_PATH, "env").get_relevance_conf()
class AddChanPing(unittest.TestCase): '''添加产品''' def setUp(self): self.driver = webdriver.Chrome() # 获取xml元素对象 logins = root.getElementsByTagName('url') self.base_url = logins[0].firstChild.data self.driver.implicitly_wait(30) # 智能等待时间 self.logger = Log() self.logger.info("################# START ##############") self.driver.maximize_window() self.verificationErrors = [] # 错误日志收集 def test_addchanping(self): driver = self.driver driver.get(self.base_url) # 调用登录函数 loginPage.test_login(self, "admin", "admin1234") sleep(3) # 点击产品 driver.find_element_by_link_text("产品").click() log.info("点击按钮:link_text=产品") """ try: adb = driver.find_element_by_xpath("//*[@id='block11']/div[1]/nav/li[1]/a").text if adb == ' 添加产品': driver.find_element_by_xpath("//*[@id='block11']/div[1]/nav/li[1]/a").click() else: print("呵呵") except: print("叫爸爸") try: driver.find_element_by_xpath("//*[@id='block11']/div[1]/nav/li[1]/a") a = True if a == True: print("哈哈,我是真的") else: print("哈哈,我是假的") except: time.sleep(1) """ # 点击添加产品下拉框选择点击产品(抛异常) try: tianjiachanping=driver.find_element_by_link_text("添加产品").text if tianjiachanping=="添加产品": driver.find_element_by_link_text("添加产品").click() log.info("下拉框:class_name=btn-group") else: print("此元素不叫添加产品") except: log.info("此元素不存在") # 获取当前时间用于参数设置 now_time = time.strftime("%H-%M-%S") print(now_time) # 输入产品名称(判断产品名称输入框是否存在) try: driver.find_element_by_id("name") b=True if b==True: driver.find_element_by_id("name").clear() driver.find_element_by_id("name").send_keys(u"禅道项目" + now_time) text = "禅道项目" + now_time print(text) log.info("输入产品名称:禅道项目") else: log.info("找不到产品名称输入框") except: log.info("产品名称元素不存在") # 输入产品代号(循环) k=1 while k<100: k=k+1 if now_time==20-54-20: driver.find_element_by_id("code").clear() driver.find_element_by_id("code").send_keys(now_time) log.info("产品代号:now_time") else: log.info("产品代号不符合要求") # 选择产品线 driver.find_element_by_xpath("//*[@id='line_chosen']/a/div[1]").click() time.sleep(1) driver.find_element_by_xpath("//*[@id='line_chosen']/div/ul/li[2]").click() """ 键盘操作 driver.find_element_by_xpath("//*[@id='line_chosen']/a/div[1]").click() time.sleep(1) driver.find_element_by_xpath("//*[@id='line_chosen']/a/span").send_keys(Keys.DOWN) time.sleep(1) driver.find_element_by_xpath("//*[@id='line_chosen']/a/span").send_keys(Keys.ENTER) """ log.info("产品线:id=line") # 选择产品类型 sel = driver.find_element_by_id("type") Select(sel).select_by_value("branch") log.info("选择产品类型:id=type") # 产品描述 xf = driver.find_element_by_css_selector(".ke-edit-iframe") # iframe没有id和name,使用css元素赋值然后访问 driver.switch_to.frame(xf) driver.find_element_by_class_name("article-content").send_keys("测试") log.info("产品描述输入:测试") sleep(5) # 从frame中切回主文档中 driver.switch_to.default_content() sleep(1) # 将滚动条拖到最底部 js = "var action=document.documentElement.scrollTop=10000" driver.execute_script(js) sleep(2) # 访问控制 driver.find_element_by_id("aclprivate").click() log.info("访问控制:id=aclprivate") # 点击保存 driver.find_element_by_id("submit").click() log.info("点击保存按钮:id=submit") time.sleep(2) # 获取浏览器弹出保存成功的提示信息 prompt = Alert(driver) print('prompt text : ' + prompt.text) #######获取断言信息进行断言####### self.assertEqual(prompt.text, u"保存成功") def tearDown(self): self.driver.quit() self.assertEqual([], self.verificationErrors)