Selenium3+python自动化012-测试用例模块化
测试用例模块化特点:为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-测试用例模块化的更多相关文章
- Selenium3+python自动化012+日志logging基本用法、高级用法
1.关键字: login 登录 log 日志 logging python日志模块 2.什么叫日志: 日志用来记录用户行为或者代码的执行过程 3.日志使用的地方: 1.排错的时候需要打印很多细节来帮助 ...
- selenium3+python自动化50-环境搭建(firefox)
前言 有不少小伙伴在安装selenium环境后启动firefox报错,因为现在selenium升级到3.0了,跟2.0的版本还有有一点区别的. 安装环境过程中主要会遇到三个坑: 1.'geckodri ...
- selenium3+python自动化50-环境搭建(firefox)【转载】
前言 有不少小伙伴在安装selenium环境后启动firefox报错,因为现在selenium升级到3.0了,跟2.0的版本还有有一点区别的. 安装环境过程中主要会遇到三个坑: 1.'geckodri ...
- web端自动化——Selenium3+python自动化(3.7版本)-火狐62版本环境搭建
前言 目前selenium版本已经升级到3.0了,网上的大部分教程是基于2.0写的,所以在学习前先要弄清楚版本号,这点非常重要.本系列依然以selenium3为基础. 一.selenium简介 Sel ...
- web端自动化——Selenium3+python自动化(3.7版本)-chrome67环境搭建
前言 目前selenium版本已经升级到3.0了,网上的大部分教程是基于2.0写的,所以在学习前先要弄清楚版本号,这点非常重要.本系列依然以selenium3为基础. 一.selenium简介 Sel ...
- Selenium3+python自动化010-UnitTest框架简介和单元测试框架使用
一.UnitTest介绍 unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过, ...
- Selenium3+python自动化011-unittest生成测试报告(HTMLTestRunner)
批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的. unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLTest ...
- Selenium3+python自动化006+自动化测试概述
自动化测试概述 1.自动化分类: (1)单元测试自动化: 单元测试(Unit):模拟各种异常场景,外部依赖较少,且可以做测试单元到最小的一种测试方法. Java单元测试框架Junit.TestNG; ...
- Selenium3+python自动化006-环境搭建
一.selenium简介 1.Selenium历史 (1)Selenium 1.0: Selenium IDE Selenium Grid Selenium RC(核心功能) Sele ...
随机推荐
- Mumbai:1 Vulnhub Walkthrough
靶机地址: https://www.vulnhub.com/entry/mumbai-1,372/ 主机探测: 主机端口扫描: FTP 下载Note文件 TODO: Move these multip ...
- 「Spark」Spark SQL Thrift Server运行方式
Spark SQL可以使用JDBC/ODBC或命令行接口充当分布式查询引擎.这种模式,用户或者应用程序可以直接与Spark SQL交互,以运行SQL查询,无需编写任何代码. Spark SQL提供两种 ...
- OpenCV检测Marker位姿
Marker检测采用小觅相机,可以实时检测Marker的位置和姿态,效果如下: 参考代码如下: #include "pch.h" #include <Eigen/Dense& ...
- java.math包下计算浮点数和整数的类
(1)BigIntege:实现任意精度的整数运算.(2)BigDecimal:实现任意精度的浮点运算. 例如: 使用BigDecimal进行浮点数比较 import java.math.BigDeci ...
- shell 一键配置单实例oracle基础环境变量(linux7)
#!/bin/bash echo "修改主机名" hostnamectl set-hostname wangxfa hostname sleep 1 echo "查看并关 ...
- Bash脚本编程学习笔记07:循环结构体
本篇中涉及到算术运算,使用了$[]这种我未在官方手册中见到的用法,但是确实可用的,在此前的博文<Bash脚本编程学习笔记03:算术运算>中我有说明不要使用,不过自己忘记了.大家还是尽量使用 ...
- Android中创建一个BroadcastReceiver
首先创建一个java类继承BroadcastReceiver类 package com.example.service; import android.content.BroadcastReceive ...
- mysql 行级锁问题
线上碰到存储过程死锁问题了,开始以为非主键查询 for update 会导致表锁,后来经过测试 innodb下for update索引生效的情况下 根据索引字段查询是行级锁,会将整个结果集进行上锁,直 ...
- 疑问:Iterator 遍历器和数据集合各种遍历方法的区别
https://es6.ruanyifeng.com/#docs/iterator Iterator(遍历器)的概念 Iterator 接口主要供for...of消费 Iterator 的遍历过程是: ...
- C语言 杂货整理
C语言 杂货整理 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include ...