测试用例模块化特点:为po模型做准备。

1、提取公共方法。

2、提取数据。

3、提取逻辑。

# @Author:lsj
# @version V1.0
# -*- coding:UTF-8 -*-
import unittest
from selenium import webdriver
from time import sleep
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import HTMLTestRunner
def openBroswer():
driver = webdriver.Chrome()
return driver def openUrl(driver, url):
driver.get(url)
driver.maximize_window() # 元素是否存在
def ele_is_presence(driver,tuple_arg):
return WebDriverWait(driver, 10).until(EC.presence_of_element_located(tuple_arg)) #点击操作
def ele_click(driver,tuple_arg):
ele_is_presence(driver,tuple_arg).click() # 发送文本
def ele_sendKeys(driver,tuple_arg,keyword):
ele_is_presence(driver,tuple_arg).send_keys(keyword) # 检查登录结果
def checkResult(driver, loginfo):
try:
ele_is_presence(driver, loginfo)
print ("登录状态验证通过!")
except:
print ("登录失败!") class Test_Login(unittest.TestCase):
def testm1(self):
# 用例模式一
url = 'http://daxue.qysxy.com.cn/admin/static/front/html/login.html'
account=['fuguang']
pwd=['']
c = ['']
username=(By.NAME,"username") # 用户名输入框
password=(By.NAME,"password") # 密码输入框
code = (By.ID,"code") # 验证码输入框
loginbtn = (By.ID, 'loginBtn') # 登录按钮
# 实例化driver
driver = openBroswer()
# 打开url
openUrl(driver, url)
# 输入用户名
ele_sendKeys(driver,username,account)
# 输入密码
ele_sendKeys(driver,password,pwd)
# 输入验证码
ele_sendKeys(driver,code,c)
# 点击登录按钮
ele_click(driver,loginbtn) print("模式一执行完成!!") def testm2(self):
# 用例模式二
url = "http://daxue.qysxy.com.cn/admin/static/front/html/login.html"
username = (By.NAME, 'username')# 用户名输入框
password = (By.NAME, 'password')# 密码输入框
code = (By.ID, "code") # 验证码输入框
loginbtn = (By.ID, 'loginBtn') # 登录按钮
driver=openBroswer()
openUrl(driver,url)
sleep(3)
# 输入用户名
ele_sendKeys(driver,username,'fuguang')
# 输入密码
ele_sendKeys(driver,password,'')
# 输入验证码
ele_sendKeys(driver,code,'')
# 点击登录按钮
ele_click(driver,loginbtn)
print("模式二执行完成!!") sleep(3)
driver.quit() if __name__ == '__main__':
# Test_Login() # 测试报告
testCase = unittest.TestLoader().loadTestsFromTestCase(Test_Login)
# 将多个测试类加载到测试集合中
suite = unittest.TestSuite([testCase])
# 原始版本
f = open("report.html", "wb")
runner = HTMLTestRunner.HTMLTestRunner(stream=f, title="测试报告", description="测试报告描述")
runner.run(suite)

测试用例模块化

出测试报告

Selenium3+python自动化012-测试用例模块化的更多相关文章

  1. Selenium3+python自动化012+日志logging基本用法、高级用法

    1.关键字: login 登录 log 日志 logging python日志模块 2.什么叫日志: 日志用来记录用户行为或者代码的执行过程 3.日志使用的地方: 1.排错的时候需要打印很多细节来帮助 ...

  2. selenium3+python自动化50-环境搭建(firefox)

    前言 有不少小伙伴在安装selenium环境后启动firefox报错,因为现在selenium升级到3.0了,跟2.0的版本还有有一点区别的. 安装环境过程中主要会遇到三个坑: 1.'geckodri ...

  3. selenium3+python自动化50-环境搭建(firefox)【转载】

    前言 有不少小伙伴在安装selenium环境后启动firefox报错,因为现在selenium升级到3.0了,跟2.0的版本还有有一点区别的. 安装环境过程中主要会遇到三个坑: 1.'geckodri ...

  4. web端自动化——Selenium3+python自动化(3.7版本)-火狐62版本环境搭建

    前言 目前selenium版本已经升级到3.0了,网上的大部分教程是基于2.0写的,所以在学习前先要弄清楚版本号,这点非常重要.本系列依然以selenium3为基础. 一.selenium简介 Sel ...

  5. web端自动化——Selenium3+python自动化(3.7版本)-chrome67环境搭建

    前言 目前selenium版本已经升级到3.0了,网上的大部分教程是基于2.0写的,所以在学习前先要弄清楚版本号,这点非常重要.本系列依然以selenium3为基础. 一.selenium简介 Sel ...

  6. Selenium3+python自动化010-UnitTest框架简介和单元测试框架使用

    一.UnitTest介绍 unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过, ...

  7. Selenium3+python自动化011-unittest生成测试报告(HTMLTestRunner)

    批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的. unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLTest ...

  8. Selenium3+python自动化006+自动化测试概述

    自动化测试概述 1.自动化分类: (1)单元测试自动化: 单元测试(Unit):模拟各种异常场景,外部依赖较少,且可以做测试单元到最小的一种测试方法. Java单元测试框架Junit.TestNG; ...

  9. Selenium3+python自动化006-环境搭建

    一.selenium简介 1.Selenium历史 (1)Selenium 1.0: Selenium IDE      Selenium Grid    Selenium RC(核心功能) Sele ...

随机推荐

  1. Android中实现一个简单的逐帧动画(附代码下载)

    场景 Android中的逐帧动画,就是由连续的一张张照片组成的动画. 效果 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 ...

  2. 「Flink」配置使用Flink调试WebUI

    很多时候,我们在IDE中编写Flink代码,我们希望能够查看到Web UI,从而来了解Flink程序的运行情况.按照以下步骤操作即可,亲测有效. 1.添加Maven依赖 <dependency& ...

  3. mysql必知必会--用通配符进行过滤

    LIKE 操作符 前面介绍的所有操作符都是针对已知值进行过滤的.不管是匹配一 个还是多个值,测试大于还是小于已知值,或者检查某个范围的值,共 同点是过滤中使用的值都是已知的.但是,这种过滤方法并不是任 ...

  4. wordpress 配置坑详解

    首先 经过我测试,php74模块没有支持apache的.所以升级到php74 之后,php无法使用. 最基本的函数phpinfo 调用不出来,没有相关的模块. 安装mariadb 10.4 之后发现, ...

  5. kubernetes 资源管理

    前言 在kubernetes环境下,无论集群再大,对应的集群资源(cpu.memory.storage)总是有上限的.而默认情况下,我们启动的pod.以及pod中运行的容器,对应的资源是不加限制的.理 ...

  6. KVM | centos 安装 window 虚拟机

    KVM | centos 安装 window 虚拟机 环境: CENTOS 7.3 1. 准备 1.1 检查是否支持虚拟化 cat /proc/cpuinfo | egrep 'vmx|svm' 要求 ...

  7. warning: LF will be replaced by CRLF in

    warning: LF will be replaced by CRLF in analysis/Result.csv. The file will have its original line en ...

  8. cobaltstrike使用笔记2

    0x01 cs服务端绕过流量检测 定义C2的通信格式,修改CS默认的流量特征 编写Profiles: 开源Profiles:https://github.com/rsmudge/Malleable-C ...

  9. Linux-redis安装以及客户端搭建

    redis安装: 下载redis数据库,网址:redis官网 将文件放到home或者其他文件夹,cd到文件夹 执行 tar zxvf redis-4.0.2.tar.gz //解压文件 执行make进 ...

  10. 论文-MobileNetV2: Inverted Residuals and Linear Bottlenecks

    1.主要创新 1)提出了一种新的layer module:the inverted residual with linear bottleneck, 2)short connect被置于bottlen ...