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 ...
随机推荐
- JavaScrip流程控制之switch选择,for循环
swith根据表达式的值来case ,break执行跳转语句 <!DOCTYPE html> <html lang="en"> <head> & ...
- MYSQLl给用户授予数据库表权限
给targetUserName用户授予databaseName单个数据库权限 grant all privileges on databaseName.* to targetUserName@&quo ...
- 【公告】Hello World!
Hi! 这里 是 华中师大一附中 2019 级信息组 官方博客 ! ^_^ 我们将在这里分享一些难题的做法,帮助大家共同学习. 也欢迎同是OIer的你加入我们哦!
- 【题解】 2月19日 厦门双十中学NOIP2014模拟D2 T1 采药人的切题规则
Made by 退役的OIer 第一次写博客,写得不好 or 不清楚的可以 在下方留言,我会尽量改进的! 好啦~~~回到正题,题面见传送门 [问题描述] 采药人最近在认真切题,但回旋的转盘时常在眼前浮 ...
- Java Web笔记(2)
学习笔记,狂神说java,链接:https://www.bilibili.com/video/av68833391 5.Maven 我为什么要学习这个技术? 在Javaweb开发中,需要使用大量的ja ...
- java设计模式学习笔记--接口隔离原则
接口隔离原则简述 客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应建立在最小的接口上 应用场景 如下UML图 类A通过接口Interface1依赖类B,类C通过接口Interface1依赖类 ...
- centos7 lnmp环境搭建
1- 安装gcc c++编译器 yum install gcc gcc-c++ cmake 2- 安装nginx-1.8.1及依赖包 2.1- 安装nginx依赖包 yum -y install pc ...
- 纪中21日c组T2 2117. 【2016-12-30普及组模拟】台风
2117. 台风 (File IO): input:storm.in output:storm.out 时间限制: 1000 ms 空间限制: 262144 KB 具体限制 Goto Proble ...
- P1217 [USACO1.5]回文质数 Prime Palindromes(stringstream,sizeof(num)/sizeof(num[0]),打表)
题目描述 因为 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找出范围 [a,b](5≤a<b≤100,000,000)( 一亿)间 ...
- 安装Gitlab到Ubuntu(APT)
运行环境 系统版本:Ubuntu 16.04.6 LTS 软件版本:Gitlab-ce-11.10.1 硬件要求:最低2核4GB,建议4核8GB 安装过程 1.安装依赖 root@localhost: ...