python+selenium+pytest自动化测试,unittest转pytest

python+selenium+pytest自动化测试


前言

之前使用的unittest,考虑到pytest更友好,故要进行代码的转化。


一、unittest转pytest

1.修改项

1.import pytest
2.文件名修改为以test开头,如test_xxx.py
3.类修改为以Test开头,如Test_xxx():
4.方法修改为以test开头,如test_xxx
5.断言修改为assert xxx=“xxx”
6.前置修改为setup_class
7.后置修改为teardown_class
8.主函数修改为pytest.main()
9.File->Settings->Python Integrated Tools,默认运行改为pytest
在这里插入图片描述

2.具体代码

原代码:
test_login.py

# coding=utf-8
# 用例集
import sys
import os
import warnings
import time
from selenium import webdriver
from business.login_business import LoginBusiness
import unittest
from slog.user_log import UserLog
from base.basepage import DriverUtil
curPath = os.path.abspath(os.path.join(os.getcwd()))
sys.path.append(curPath)

class LoginCase(unittest.TestCase):

    driver = None

    @classmethod
    def setUpClass(self):
        self.driver = DriverUtil.getWebDriver() #驱动设置
        self.lo = LoginBusiness(self.driver) #实例化
        warnings.simplefilter('ignore', ResourceWarning)

    def tearDown(self):
        DriverUtil.screenShot(self)

    # @classmethod
    # def tearDownClass(self):
    #     self.driver.close()
    
    def test01_login_username_error(self):
        username_error = self.lo.login_error("admin123", "admin123")
        self.assertFalse(username_error, "失败")
        #是否为False,为False就是正确的
        #通过assert判断是否为error

    def test02_login_password_error(self):
        password_error = self.lo.login_error("admin", "admin")
        self.assertFalse(password_error, "失败")

    def test03_login_success(self):
        success = self.lo.login_success("admin", "admin123")
        self.assertFalse(success, "失败")

if __name__ == "__main__":
    unittest.main()

login_business.py

# coding=utf-8
from handle.login_handle import LoginHandle


class LoginBusiness(object):
    def __init__(self, driver):
        self.login_h = LoginHandle(driver)

    def user_base(self, username, password):
        self.login_h.send_username(username)
        self.login_h.send_password(password)
        self.login_h.click_login_button()

        self.login_h.send_username(chr(127)*int(10))
        self.login_h.send_password(chr(127)*int(10))

    def login_error(self, username, password):
        self.user_base(username, password)
        if self.login_h.get_login_text() == '登录':
            print("登录失败")
            return True
        else:
            return False

    def login_success(self, username, password):
        self.user_base(username, password)
        if self.login_h.get_login_text() is None:
            return True
        else:
            return False

修改后代码:
test_login.py

# coding=utf-8
# 用例集
import sys
import os
import warnings
from business.login_business import LoginBusiness
import pytest
from base.basepage import DriverUtil

curPath = os.path.abspath(os.path.join(os.getcwd()))
sys.path.append(curPath)

class TestLoginCase():

    def setup_class(self):
        self.driver = DriverUtil.getWebDriver()  # 驱动设置
        self.lo = LoginBusiness(self.driver)  # 实例化
        warnings.simplefilter('ignore', ResourceWarning)
        
	def teardown_class(self):
	    self.driver.close()

    @pytest.mark.demo(order=1)
    def test_login_username_error(self):
        Text = self.lo.login_error("admin123", "admin123")
        assert Text == "用户名或者密码错误"

    @pytest.mark.demo(order=2)
    def test_login_password_error(self):
        Text = self.lo.login_error("admin", "admin")
        assert Text == "用户名或者密码错误"

    @pytest.mark.demo(order=3)
    def test_login_success(self):
        Text = self.lo.login_success("admin", "admin123")
        assert Text == "超级管理员"


if __name__ == "__main__":
    pytest.main()

login_business.py

# coding=utf-8
from handle.login_handle import LoginHandle


class LoginBusiness(object):
    def __init__(self, driver):
        self.login_h = LoginHandle(driver)

    def user_base(self, username, password):
        self.login_h.send_username(username)
        self.login_h.send_password(password)
        self.login_h.click_login_button()

        self.login_h.send_username(chr(127)*int(10))
        self.login_h.send_password(chr(127)*int(10))

    def login_error(self, username, password):
        self.user_base(username, password)
        ToastText = self.login_h.get_login_fail_text()
        return ToastText

    def login_success(self, username, password):
        self.user_base(username, password)
        ButtonText = self.login_h.get_login_user_text()
        return ButtonText

总结

推荐大家使用pytest!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值