把CSDN登录功能实现自动化

一、搭建自动化测试框架

Python + selenium 自动化测试框架

二、准备测试数据

Python + selenium 自动化测试----读取CSV文档中的测试数据

三. 先准备page层

把界面元素定义成属性:可以直接写到class中; 就类似于变量
属性名 = 属性值 #属性名自定义; 属性值:是界面元素的定位信息
把定位元素并且操作定义成方法
Class xxxpage:
属性名 = 属性值 #属性名自定义; 属性值:是界面元素的定位信息
def 方法名():

from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait



class CsdnPage():
    #使用F12定位用户名输入框
    username = By.XPATH,'//*[placeholder="手机号"]'
    #使用F12定位密码输入框
    password = By.XPATH,'//*[placeholder="6位数字验证码"]'
    def csdn_login_page(self,driver,username,password):
        #输入用户名
        keys_username = WebDriverWait(driver,10,0.2).until(expected_conditions.presence_of_element_located((self.username)))
        keys_username.send_keys(username)
        # 输入验证码
        keys_password = WebDriverWait(driver,10,0.2).until(expected_conditions.presence_of_element_located((self.password)))
        keys_password.send_keys(password)

备注:
页面元素定位不熟悉的老铁自己可以去抽个充电,示例中使用了xpath的高级用法
Python + selenium 元素定位 (一)----driver.find_element_by_xxx()

Python + selenium 元素定位(二) ----driver.find_elements_by_xxx()

Python + selenium 元素定位(三),By方法查找元素----driver.find_element(By.XXX, “selector”)
Python + selenium 元素定位(四),By方法查找元素----driver.find_elementS(By.XXX, “selector”)
Python + selenium 元素定位(五)-----css selector 的高级用法
Python + selenium 元素定位(六)----Xpath的高级用法

2. 准备业务层:

from src.common.get_test_file import GetTestInfo
from src.pages.csdn_page import CsdnLoginPage


class CsdnLoginBusiness(CsdnLoginPage):
    def login_function(self,driver,line):
        #读取测试数据
        data = GetTestInfo().get_test_data("login_data.csv",line)
        #读取到的测试数据填写到对应的输入框中
        CsdnLoginPage().csdn_login_page(driver,data[0],data[1])

备注
读取测试数据
把数据整合到登录页面上。

3.准备用例层

注:
执行用用例是首先进行浏览器初始化,一般浏览器初始化用的比较多所以单另分装个函数放在common中直接调用即可
初始化浏览器
使用unittest框架编写测试用例

import unittest
from selenium.webdriver.android import webdriver
from src.business.scdn_b import CsdnLoginBusiness
from src.common.General_method import GeneralMethod

class LoginTestCase(unittest.TestCase):
    def setUp(self):
        #初始化浏览器对其赋值
        self.driver,self.Wait = GeneralMethod().chushihua_driver("csdn_url")
    # 用例一:正常登录用例
    def test_normal_login(self):
        "登录成功,断言成功"
        try:
            #测试用例,输入合法的用户名和密码登录
            CsdnLoginBusiness().login_function(self.driver,1)
        except:
            #用例执行失败后截取图片
            GeneralMethod().get_picture(self.driver,"正常登录用例")
            raise
    def tearDown(self):
        # 测试用例执行完毕关闭浏览器
        self.driver.quit()
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐