用python实现自动化测试用例_Python + Selenium 使用 unittest 编写自动化测试用例

我们使用之前演示过的 showdoc,编写一个登录的用例,并检查自定义项目是否存在。

首先,我们把这个过程先罗列出来:

打开登录页面

选择登录

输入用户名

输入密码

点击登录

验证自定义项目是否存在

由于这个项目登录后没有任何用户名标识,所以要想判断登录的账号是否正确,可以通过该用户下的项目来判断。

import unittest

import time

from selenium import webdriver

from vcode import ocr_b64 # 处理验证码的程序

class TestLogin(unittest.TestCase):

def setUp(self): # => setUp中处理浏览器初始化

self.driver = webdriver.Chrome()

self.driver.implicitly_wait(10)

self.driver.maximize_window()

def page_contains(self, text): # => 写一个方法用于断言

'''

判断页面上是否包含某个文本

:params: text, 需要验证的文本

:return: True, False

'''

try:

self.driver.find_element_by_xpath('//*[contains(text(), %s)]' % text)

return True

except Exception:

return False

def test_login(self): # => 测试用例

driver = self.driver # => 少写点self 😀

# 打开登录页面

driver.get('https://www.showdoc.cc/user/login')

# 处理验证码

while True:

driver.find_element_by_css_selector(

'[placeholder="用户名/邮箱"]').send_keys('nemo1')

driver.find_element_by_css_selector(

'[placeholder="密码"]').send_keys('123456')

v_code = ocr_b64(driver.find_element_by_class_name(

'v_code_img').screenshot_as_base64) # => 识别验证码

driver.find_element_by_css_selector(

'[placeholder="验证码"]').send_keys(v_code)

driver.find_element_by_xpath('//button/*[text()="登录"]').click()

try:

# 如果弹出框出现,则说明验证码错误

driver.find_element_by_css_selector(

'.el-message-box .el-button--primary').click()

# 刷新页面

driver.refresh()

except:

# 如果弹出框不出现,则说明验证码正确

break

# 提取当前用户的项目

self.assertTrue(self.page_contains('Nemo的项目'), '自定义项目未找到')

def tearDown(self): # => 处理浏览器

time.sleep(3) # => 等一下查看下结果

self.driver.quit()

if __name__ == "__main__":

unittest.main()

代码说明:

from vcode import ocr_b64:

关于验证码的处理,请参考文章:使用百度文字识别API识别验证码

setUp():

测试固件中的初始化方法主要处理浏览器的初始化过程。

tearDown():

测试固件中的清理方法仅用来处理浏览器的退出。

test_login():

测试方法包含操作过程、断言。

page_contains(text):

定义了一个方法,用来判断页面上某个文本是否存在,存在则返回 True。主要用于配合断言方法。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值