zoukankan      html  css  js  c++  java
  • Python web框架搭建

    web自动化的作用就是通过代码自动化代替人工手动测试,节省人力、时间和精力;那么又是如果进行自动测试呢?思路如下:

    下面通过一个例子说明一下:登录操作


    手动测试是直接在输入框输入用户名、密码、然后点击登录按钮;

    那么代码也同样道理;

    1、先定位到用户名、密码的输入框元素和登录按钮元素---pagelocators模块

    pagelocators模块--login_locator.py(LoginLocator类)

    from selenium.webdriver.common.by import By
    class LoginLocator:
    #定位用户名输入框
    uer_account=(By.XPATH,'//input[@placeholder="请输入你的账号/手机号"]')
    #定位密码输入框
    password=(By.XPATH,'//input[@placeholder="请输入你的密码"]')
    #定位登录按钮
    button=(By.XPATH,'//button[@id="loginBtn"]')


    2、然后进行输入用户名、密码、点击登录按钮操作(前提准备好测试用例--testdatas模块)---pageprojects模块

    pageprojects模块---login_page.py(定义LoginPage类):

    from selenium.webdriver.support.wait import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from PageLocators.login_locator import LoginLocator as loc
    from Commons.BasePage import BasePage
    import time

    class LoginPage(BasePage):
           #登录操作
          def login_success(self,account,password):
                name="登录模块"
                WebDriverWait(self.driver,30).until(EC.visibility_of_element_located(loc.uer_account))
                self.driver.find_element(*loc.uer_account).clear()
                self.driver.find_element(*loc.uer_account).send_keys(account)
                WebDriverWait(self.driver,30).until(EC.visibility_of_element_located(loc.password))
                self.driver.find_element(*loc.password).clear()
                self.driver.find_element(*loc.password).send_keys(password)
                self.driver.find_element(*loc.button).click()
                self.save_webImgs(model=name)
                time.sleep(1)


    testdatas模块--Login_datas.py

    #正常场景---正常登录
    success_data={'account':'101****4088','password':'******','check':'登录成功'}


    3、进行测试用例操作---testcases模块

    testcases模块--test_login.py(TestApi类并继承(unittest.TestCase))

    from selenium import webdriver
    from TestDatas import common_datas as cd
    from TestDatas import Login_datas as ld
    from ddt import ddt,data
    import unittest
    from PageProjects.login_page import LoginPage

    def setUp(self):
        #配置WebDriver驱动的环境变量
        chrome_driver=r"C:UsersAdministratorAppDataLocalGoogleChromeApplicationchromedriver.exe"
        #打开浏览器
        self.driver=webdriver.Chrome(chrome_driver)
        #打开Aos登录页面
        self.driver.get("http://*****/cn/login")
        self.driver.maximize_window()
        self.lp=LoginPage(self.driver)

    def tearDown(self):
        self.driver.quit()

    #成功登录的情况
    def test_login_1_success(self):
         logging.info("*********登录用例:正常场景:使用正确的用户名和密码登陆*********")
         #登录页面--登录功能--输入用户名和密码
         self.lp.login_success(ld.success_data['account'],ld.success_data['password'])
        #断言
        try:
            act_check=self.lp.get_success_msg()
            self.assertEqual(act_check,ld.success_data['check'])
            logging.info('成功登录的用户名{0},密码为{1}'.format(ld.success_data['account'],ld.success_data['password']))
            logging.info('登录成功')
        except EnvironmentError as e:
            logging.info("登录异常{0}".format(e))
            time.sleep(5)


    4、测试报告模块

    import unittest
    from Commons import path_config
    import HTMLTestRunnerNew
    from TestCases.test_login import TestApi
    import logging
    from Commons import logger
    suite=unittest.TestSuite()
    loader=unittest.TestLoader()

    # file=open('report.html','wb+')
    with open(path_config.report_dir,'wb+') as file:
    suite.addTest(loader.loadTestsFromTestCase(TestApi))
    runner=HTMLTestRunnerNew.HTMLTestRunner(stream=file, verbosity=2,title='linda测试接口报告',description='Python10_test',tester=None)
    runner.run(suite)

    以上只是做了一个简单的框架,可以加上日志、截图等模块

  • 相关阅读:
    【PowerOJ1754&网络流24题】负载平衡问题(费用流)
    【PowerOJ1753&网络流24题】分配问题(KM)
    【PowerOJ1752&网络流24题】运输问题(费用流)
    【PowerOJ1751&网络流24题】数字梯形问题(费用流)
    【PowerOJ1746&网络流24题】航空路线问题(费用流)
    【PowerOJ1744&网络流24题】方格取数问题(最小割)
    【PowerOJ1742&网络流24题】试题库问题(最大流)
    【PowerOJ1741&网络流24题】最长递增子序列问题(最大流)
    【PowerOJ1739&网络流24题】魔术球问题(最大流)
    邮件系统相关协议之SMTP
  • 原文地址:https://www.cnblogs.com/pwj2lgx/p/11635989.html
Copyright © 2011-2022 走看看