、 预置条件:

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 自动化测试框架 -- 入门篇的更多相关文章

  1. Python+Selenium ----unittest单元测试框架

    unittest是一个单元测试框架,是Python编程的单元测试框架.有时候,也做叫做“PyUnit”,是Junit的Python语言版本.这里了解下,Junit是Java语言的单元测试框架,Java ...

  2. Python Api接口自动化测试框架 excel篇

    工作原理: 测试用例在excel上编辑,使用第三方库xlrd,读取表格sheet和内容,sheetName对应模块名,Jenkins集成服务发现服务moduleName查找对应表单,运用第三方库req ...

  3. python+appium+unittest自动化测试框架环境搭建

    一.基础软件准备 1.python 版本最新版本,python的IDE使用pycharm.具体的下载链接: python https://www.python.org/ pycharm:https:/ ...

  4. 《Selenium自动化测试实战:基于Python》Selenium自动化测试框架入门

    第1章  Selenium自动化测试框架入门 1.1  Selenium自动化测试框架概述 说到目前流行的自动化测试工具,相信只要做过软件测试相关工作,就一定听说过Selenium. 图1-1是某企业 ...

  5. Selenium自动化测试框架入门整理

    ​​关注嘉为科技,获取运维新知 本文主要针对Selenium自动化测试框架入门整理,只涉及总体功能及框架要点介绍说明,以及使用前提技术基础要求整理说明.作为开发人员.测试人员入门参考. 本文参考:Se ...

  6. Python+Selenium+Unittest+Ddt+HTMLReport分布式数据驱动自动化测试框架结构

    1.Business:公共业务模块,如登录模块,可以把登录模块进行封装供调用 ------login_business.py from Page_Object.Common_Page.login_pa ...

  7. Python+selenium+unittest+HTMLTestReportCN单元测试框架分享

    分享一个比较基础的,系统性的知识点.Python+selenium+unittest+HTMLTestReportCN单元测试框架分享 Unittest简介 unittest是Python语言的单元测 ...

  8. 《手把手教你》系列基础篇(九十七)-java+ selenium自动化测试-框架设计篇-Selenium方法的二次封装和页面基类(详解教程)

    1.简介 上一篇宏哥介绍了如何设计支持不同浏览器测试,宏哥的方法就是通过来切换配置文件设置的浏览器名称的值,来确定启动什么浏览器进行脚本测试.宏哥将这个叫做浏览器引擎类.这个类负责获取浏览器类型和启动 ...

  9. python版接口自动化测试框架源码完整版(requests + unittest)

    python版接口自动化测试框架:https://gitee.com/UncleYong/my_rf [框架目录结构介绍] bin: 可执行文件,程序入口 conf: 配置文件 core: 核心文件 ...

随机推荐

  1. HBase数据模型(2)

    HBase数据模型(1) HBase数据模型(2) 1.0 HBase的版本version,是一个用长整型表示的.由Rowkey.Column(列族和列).Version组合在一起称为HBase中的一 ...

  2. dos 删除文件夹 rd

    windows普通方法删除不了文件.文件夹?那么试试dos命令吧. rd的另外一个写法是rmdir,源自ReMakeDirectory.使用的方法也很简单:rd 文件夹名 即可,例如:rd test. ...

  3. LayUI 完美兼容Vue.js

    <div id="app"> <form class="layui-form" action=""> <div ...

  4. 使用Python+selenium过程中所需安装的库和软件

    一.下载地址: 1.setuptools:https://pypi.python.org/pypi/setuptools#downloads 中file对应的后缀为zip的软件 pip:https:/ ...

  5. C#调用SAP S4/HANA Gateway Service

    公司使用SAP,并且实施公司做了一些提供报表数据的接口供调用,首先说明一下我对SAP不熟悉 但SAP用到的接口信息提供大家参考一下,这些Gateway Service使用的是DCP方式写的,SAP提供 ...

  6. 【Python图像特征的音乐序列生成】图像特征在旋律生成中有什么用

    jishude 首先援引一个资料网页:http://www.cosmosshadow.com/ml/%E5%BA%94%E7%94%A8/2016/03/01/%E9%9F%B3%E4%B9%90%E ...

  7. 【转】ios -- ViewController跳转+传值(方式一)

    方式一:通过定义一个实体类传值 (从ViewController1 跳转至 ViewController2) 1.定义实体类NotificationEntity .h声明文件 #import < ...

  8. java面试基础篇(一)

    最近想深入的理解一下java 的工作机制,也是便于后期的面试. 1.A:HashMap和Hashtable有什么区别? Q:HashMap和Hashtable都实现了Map接口,因此很多特性非常相似. ...

  9. sort 与 sorted 区别:

    sort 与 sorted 区别: sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作. list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值, ...

  10. js实现23种设计模式(收藏)

    js实现23种设计模式 最近在学习面向对象的23种设计模式,使用java 和 javascript 实现了一遍,但是因为目前大三,还没有比较正规的大项目经验,所以学习的过程种我觉得如果没有一定的项目经 ...