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: 核心文件 ...
随机推荐
- javascript中两种基本常用排序算法分析
备注:内容大部分从网上复制,代码为自己手写.仅做知识的温故知新,并非原创. 1.冒泡排序(Bubble Sort) (1)算法描述 冒泡排序是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两 ...
- 判断浏览器是pc端还是移动端
var browser = { versions: function() { var u = navigator.userAgent, app = navigator.appVersion; retu ...
- React日常注意点
1.在定义组件的时候,名字首字母一定要大写 最近刚学,我会持续把自己学习过程中的的注意点在这里逐个列出,敬请等待!
- Python 之excle的读写
一.读取Excel 注:要先安装xlrd 代码如下: #-*- coding: utf8 -*-import xlrd #引入读excle的类#fname = "reflect.xls& ...
- ArcGis server发布地图服务
ArcGIS server发布服务: 首先修改地图文档属性中的关联默认数据库 最后使用分享将地图服务发布到server上,是地图服务可以使用: 注意一定要勾选 Feature Access选项 fea ...
- npm WARN saveError ENOENT: no such file or directory, open 'C:\Users\James\package.json'
在运行如下命令时, 遇到了问题: npm install --registry=https://registry.npm.taobao.org npm run dev 错误提示: 解决办法: 生成一个 ...
- python之函数的传参形参的第三种动态参数*args和**kwargs
1. 位置/关键字传参的缺点 当给函数传入的参数数目不定时,之前的传参方式解决不了问题. def eat(food1,food2,food3): print(f'我请你吃:{food1},{food2 ...
- 【胎教】做AI的基础,开始学习。
昨天,找了博导,他给我聊了一下暑假任务.现总结如下: 1. 周志华, 机器学习: 2. GoodFellow,深度学习: 3. 曾更生,*****医学图像处理: 4. cs231n,公式推导,课后习题 ...
- sql where in字符串问题
在pycharm中执行 select * from value in(1,2); 会提醒: No statement found under the caret. Execute all statem ...
- 关于bc中小数点length,scale,(())以及进制转换
这是我在codewar上遇到的一个题,我用我自己的方法做出了解答,如下: 1 #!/bin/bash 2 3 distance=`echo "$1*10000"|bc|cut -d ...