Python + selenium 自动化测试实例(一)

13 篇文章 11 订阅
11 篇文章 4 订阅

把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()
  • 5
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@chameleon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值