python + selenium + unittest 自动化测试框架 -- 入门篇
、 预置条件:
1. python已安装
2. pycharm已安装
3. selenium已安装
4. chrome.driver 驱动已下载
二、工程建立
1. New Project:建立自己的工程
2. New Package:建立各个配置包
3. New Python:建立python脚本
三、上代码:
1. constant.py
将相对独立的常量单独封装到此处,便于后期修改。
2. test_login_case.py
# -*- coding:utf-8 -*- '''
@project: Voctest
@author: Jimmy
@file: test_case_login.py
@ide: PyCharm Community Edition
@time: 2018-10-31 16:44
@blog: https://www.cnblogs.com/gotesting/ ''' from Element.constant import *
from time import sleep
import selenium
import unittest class LoginCase(unittest.TestCase): def setUp(self):
self.driver = webdriver.Chrome()
self.driver.maximize_window() # 定义登录方法
def login(self,username,password):
self.driver.get(login_url)
self.driver.find_element_by_class_name('gd-login-user').send_keys(username)
self.driver.find_element_by_class_name('gd-login-password').send_keys(password)
self.driver.find_element_by_class_name('gd-login-submit-bg').click() # 正确用户名密码登录
def test_login_success(self):
self.login('system','123456')
sleep(2)
title_msg = self.driver.find_element_by_class_name('gd-topbar-name-text').text
self.assertEquals('首页',title_msg)
self.driver.get_screenshot_as_file('F:\python\Voctest\Picture\login_success.png') # 用户名为空登录
def test_login_username_null(self):
self.login('','123456')
sleep(2)
login_msg = self.driver.find_element_by_class_name('gd-login-submit-text').text
self.assertIn('登 录',login_msg)
self.driver.get_screenshot_as_file('F:\python\Voctest\Picture\login_username_null.png') # 密码为空登录
def test_login_password_null(self):
self.login('system','')
sleep(2)
login_msg = self.driver.find_element_by_class_name('gd-login-submit-text').text
self.assertIn('登 录',login_msg)
self.driver.get_screenshot_as_file('F:\python\Voctest\Picture\login_password_null.png') # 错误用户名密码登录
def test_login_fail(self):
self.login('system','12345678')
sleep(2)
login_msg = self.driver.find_element_by_class_name('gd-login-msg').text
self.assertEquals('用户名或密码错误',login_msg)
self.driver.get_screenshot_as_file('F:\python\Voctest\Picture\login_password_fail.png') def tearDown(self):
sleep(2)
print('login auto test done !')
self.driver.quit() if __name__ == '__main__':
unittest.main()
python + selenium + unittest 自动化测试框架 -- 入门篇的更多相关文章
- Python+Selenium ----unittest单元测试框架
unittest是一个单元测试框架,是Python编程的单元测试框架.有时候,也做叫做“PyUnit”,是Junit的Python语言版本.这里了解下,Junit是Java语言的单元测试框架,Java ...
- Python Api接口自动化测试框架 excel篇
工作原理: 测试用例在excel上编辑,使用第三方库xlrd,读取表格sheet和内容,sheetName对应模块名,Jenkins集成服务发现服务moduleName查找对应表单,运用第三方库req ...
- python+appium+unittest自动化测试框架环境搭建
一.基础软件准备 1.python 版本最新版本,python的IDE使用pycharm.具体的下载链接: python https://www.python.org/ pycharm:https:/ ...
- 《Selenium自动化测试实战:基于Python》Selenium自动化测试框架入门
第1章 Selenium自动化测试框架入门 1.1 Selenium自动化测试框架概述 说到目前流行的自动化测试工具,相信只要做过软件测试相关工作,就一定听说过Selenium. 图1-1是某企业 ...
- Selenium自动化测试框架入门整理
关注嘉为科技,获取运维新知 本文主要针对Selenium自动化测试框架入门整理,只涉及总体功能及框架要点介绍说明,以及使用前提技术基础要求整理说明.作为开发人员.测试人员入门参考. 本文参考:Se ...
- Python+Selenium+Unittest+Ddt+HTMLReport分布式数据驱动自动化测试框架结构
1.Business:公共业务模块,如登录模块,可以把登录模块进行封装供调用 ------login_business.py from Page_Object.Common_Page.login_pa ...
- Python+selenium+unittest+HTMLTestReportCN单元测试框架分享
分享一个比较基础的,系统性的知识点.Python+selenium+unittest+HTMLTestReportCN单元测试框架分享 Unittest简介 unittest是Python语言的单元测 ...
- 《手把手教你》系列基础篇(九十七)-java+ selenium自动化测试-框架设计篇-Selenium方法的二次封装和页面基类(详解教程)
1.简介 上一篇宏哥介绍了如何设计支持不同浏览器测试,宏哥的方法就是通过来切换配置文件设置的浏览器名称的值,来确定启动什么浏览器进行脚本测试.宏哥将这个叫做浏览器引擎类.这个类负责获取浏览器类型和启动 ...
- python版接口自动化测试框架源码完整版(requests + unittest)
python版接口自动化测试框架:https://gitee.com/UncleYong/my_rf [框架目录结构介绍] bin: 可执行文件,程序入口 conf: 配置文件 core: 核心文件 ...
随机推荐
- FAST FW150R软件版本升级解决一些网页无法加载问题
家里用的移动宽带,通过无线路由器无线上网.上taobao.天猫都很快,但是一上京东.苏宁易购界面加载很慢,界面无法显示,怀疑是无线路由问题,然后直接通过网线相连接,发现问题消失,决定对无线路由软件版本 ...
- iOS - NSString 封装
在实际项目开发过程中,发现字符串使用频率还是非常高的,NSString提供了很多相关的API,但是在开发过程中发现很多业务功能都是相同的.因此根据在开发过程中遇到的字符串使用场景,进行了简单封装.具体 ...
- Python+selenium之unittest单元测试(3)关于测试用例执行的顺序
一.测试用例执行的顺序 用例的执行顺序涉及多个层级,在多个测试目录的情况下,先执行哪个目录?在多个测试文件的情况下,先执行哪个文件?在多个测试类的情况下,先执行哪个测试类?,在多个测试方法(用例)的情 ...
- HDU 3681 Prison Break 越狱(状压DP,变形)
题意: 给一个n*m的矩阵,每个格子中有一个大写字母,一个机器人从‘F’出发,拾取所有的开关‘Y’时便能够越狱,但是每走一格需要花费1点能量,部分格子为充电站‘G’,每个电站只能充1次电.而且部分格子 ...
- CF Gym 100187B A Lot of Joy (古典概型)
题意:给两个一样的只含有26个小写字母的字符串,然后两个分别做一下排列,问如果对应位置的字母相等那么就愉悦值就加一,问愉悦值的期望是多少? 题解:只考虑两个序列相对的位置,那么就相当于固定一个位置,另 ...
- tpcc-mysql运行结果解读
前言 首先我们需要知道tpcc-mysql是干什么的.TPC-C是专门针对联机交易处理系统(OLTP系统)的规范,一般情况下我们也把这类系统称为业务处理系统.tpcc-mysql是percona基于T ...
- halt, reboot, poweroff - 中止系统运行
SYNOPSIS /sbin/halt [-n] [-w] [-d] [-f] [-i] [-p] /sbin/reboot [-n] [-w] [-d] [-f] [-i] /sbin/powero ...
- 二、antd pro 删除eslint检测
删除package.json 里 " pre-commit": "npm run lint-staged" 这个对象就可以.
- python基础一 day15 作业
3.处理文件,用户指定要查找的文件和内容,将文件中包含要查找内容的每一行都输出到屏幕def check_file(filename,aim): with open(filename,encoding= ...
- opencv将rgb图像转换成灰度图
python写法: import cv2 img = cv2.imread(img_dir, cv2.IMREAD_GRAYSCALE) cv2.imwrite(dis_dir, img) imrea ...