Python分类测试代码实例汇总


Posted in Python onJuly 23, 2020

1.自动化测试里面的测试用例设计的一些方法

解耦、可以独立运行、需要灵活切换

设计思路: 脚本功能分析(分步骤)和模块化分层(拆分为多模块)

project

login_order.py #登录下单测试用例
category.py #菜单分类测试用例

all_test.py #主入口

login_order.py

# -*- coding: UTF-8 -*-
import unittest
import time
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.action_chains import ActionChains


class LoginOrderTestCase(unittest.TestCase):
  def setUp(self):
    print("测试开始")
    self.driver = webdriver.Firefox()
    self.driver.implicitly_wait(20)
    self.base_url = "https://xdclass.net"
    self.driver.get(self.base_url)

  def tearDown(self):
    print("单个测试用例结束")
    pass
    #单个测试用例结束
  
  def test_login_order(self):
    u"登录测试用例"
    driver = self.driver
    #登录框
    login_ele = driver.find_element_by_css_selector("#login")
    ActionChains(driver).click(login_ele).perform()

    sleep(2)
    #查找输入框,输入账号,输入框要提前清理里面的数据
    driver.find_element_by_id("phone").clear()
    driver.find_element_by_id("phone").send_keys("13113777338")
    #查找密码输入框,输入密码
    driver.find_element_by_id("pwd").clear()
    driver.find_element_by_id("pwd").send_keys("123456789")

    #拿到登录按钮
    login_btn_ele = driver.find_element_by_css_selector("button.login")
    #触发点击事件,登录
    login_btn_ele.click()
    #判断登陆是否成功,逻辑-》鼠标移到上面,判断弹窗字符
    #获取鼠标上移的元素
    user_info_ele = driver.find_element_by_css_selector(".user_head_portrait")
    sleep(1)
    #hover触发
    ActionChains(driver).move_to_element(user_info_ele).perform()
    sleep(1)
    #获取用户名称元素
    user_name_ele = driver.find_element_by_css_selector(".img_name > span:nth-child(2)")
    print("===测试结果==")
    print(user_name_ele.text)

    name = user_name_ele.text
    #self.assertEqual(name, u"二当家小D",msg="登录失败")

    video_ele = driver.find_element_by_css_selector("div.hotcourses:nth-child(3) > div:nth-child(2) > div:nth-child(1) > ul:nth-child(1) > li:nth-child(1) > a:nth-child(1) > div:nth-child(1) > img:nth-child(1)")
    video_ele.click()
    sleep(2)

    buy_btn_ele = driver.find_element_by_css_selector(".learn_btn > a:nth-child(1)")

    buy_btn_ele.click()
    print("进入下单页面")
    
if __name__ == '__main__':
    unittest.main()

category.py

# -*- coding: UTF-8 -*-
import unittest
import time
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.action_chains import ActionChains

class CategoryTestCase(unittest.TestCase):
  def setUp(self):
    print("测试开始")
    self.driver = webdriver.Firefox()
    self.driver.implicitly_wait(20)
    self.base_url = "https://xdclass.net"
    self.driver.get(self.base_url)


  def tearDown(self):
    print("测试结束")
    #单个测试用例结束
    self.driver.quit()

  def test_menu(self):
    u"弹出菜单测试用例"
    driver = self.driver
    #跳转网页
    sleep(1)

    #定位到鼠标移动到上面的元素
    menu_ele = driver.find_element_by_css_selector("#banner_left_ul > a:nth-child(1) > li:nth-child(1) > span:nth-child(1)")

    #对定位到的元素执行鼠标移动到上面的操作
    ActionChains(driver).move_to_element(menu_ele).perform()
    sleep(2)
    #选中子菜单
    sub_meun_ele = driver.find_element_by_css_selector("#des > li:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > a:nth-child(1)")

    sub_meun_ele.click()
    sleep(2)


if __name__ == '__main__':
  unittest.main()

all_test.py

# -*- coding: UTF-8 -*-
import unittest
import HTMLTestRunner
import login_order ,category
import time

#创建测试集合  
def create_suite():
  print("测试开始")
  suite = unittest.TestSuite()
  suite.addTest(unittest.makeSuite(login_order.LoginOrderTestCase))
  suite.addTest(unittest.makeSuite(category.CategoryTestCase))
  return suite
   

if __name__ == '__main__':
  suite = create_suite()

  #文件名中加了当前时间,为了每次生成不同的测试报告
  file_prefix = time.strftime("%Y-%m-%d %H_%M_%S", time.localtime())

  #创建测试报告,此时这个文件还是空文件 wb 以二进制格式打开一个文件,只用于写入,如果文件存在则覆盖,不存在则创建
  fp = open("./"+file_prefix+"_result.html","wb")
  
  # stream定义一个测试报告写入的文件,title就是标题,description就是描述
  runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u"小D课堂 测试报告",description=u"测试用例执行情况",verbosity=2)
  runner.run(suite)
  fp.close()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python SQLAlchemy基本操作和常用技巧(包含大量实例,非常好)
May 06 Python
python轻松查到删除自己的微信好友
Jan 10 Python
Apache如何部署django项目
May 21 Python
Python+Django搭建自己的blog网站
Mar 13 Python
python爬虫之模拟登陆csdn的实例代码
May 18 Python
python学生管理系统学习笔记
Mar 19 Python
提升Python效率之使用循环机制代替递归函数
Jul 23 Python
Python+Pyqt实现简单GUI电子时钟
Feb 22 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
Nov 17 Python
Python+unittest+DDT实现数据驱动测试
Nov 30 Python
利用Python批量识别电子账单数据的方法
Feb 08 Python
Python如何telnet到网络设备
Feb 18 Python
基于Python3读写INI配置文件过程解析
Jul 23 #Python
Linux安装Python3如何和系统自带的Python2并存
Jul 23 #Python
Java爬虫技术框架之Heritrix框架详解
Jul 22 #Python
Python 绘制可视化折线图
Jul 22 #Python
python写文件时覆盖原来的实例方法
Jul 22 #Python
python中return不返回值的问题解析
Jul 22 #Python
Java byte数组操纵方式代码实例解析
Jul 22 #Python
You might like
实用PHP会员权限控制实现原理分析
2011/05/29 PHP
php使用cookie保存用户登录的用户名实例
2015/01/26 PHP
万能的php分页类
2017/07/06 PHP
用js得到网页中所有的div的id
2020/10/19 Javascript
JavaScript实现拼音排序的方法
2012/11/20 Javascript
javaScript如何生成xmlhttp
2013/12/16 Javascript
js的alert样式如何更改如背景颜色
2014/01/22 Javascript
Js中使用hasOwnProperty方法检索ajax响应对象的例子
2014/12/08 Javascript
js实现百度联盟中一款不错的图片切换效果完整实例
2015/03/04 Javascript
简述JavaScript中正则表达式的使用方法
2015/06/15 Javascript
无缝滚动的简单实现代码(推荐)
2016/06/07 Javascript
全面了解javascript中的错误处理机制
2016/07/18 Javascript
如何在JS中实现相互转换XML和JSON
2016/07/19 Javascript
详解webpack性能优化——DLL
2017/10/20 Javascript
js 毫秒转天时分秒的实例
2017/11/17 Javascript
node之本地服务器图片上传的方法示例
2019/03/26 Javascript
[49:21]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第二场 11.05
2020/11/06 DOTA
python原始套接字编程示例分享
2014/02/21 Python
简单的编程0基础下Python入门指引
2015/04/01 Python
浅析Python中else语句块的使用技巧
2016/06/16 Python
Python栈算法的实现与简单应用示例
2017/11/01 Python
python topN 取最大的N个数或最小的N个数方法
2018/06/04 Python
python保存数据到本地文件的方法
2018/06/23 Python
Django 对象关系映射(ORM)源码详解
2019/08/06 Python
Python编程学习之如何判断3个数的大小
2019/08/07 Python
Python使用matplotlib 画矩形的三种方式分析
2019/10/31 Python
使用python 计算百分位数实现数据分箱代码
2020/03/03 Python
Python实现密钥密码(加解密)实例详解
2020/04/26 Python
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
2020/10/12 Python
机电专业个人自荐信格式模板
2013/09/23 职场文书
语文教育专业推荐信范文
2013/11/25 职场文书
十八届三中全会宣传方案
2014/02/21 职场文书
第一批党的群众路线教育实践活动工作总结
2014/03/03 职场文书
市场营销计划书
2019/04/24 职场文书
MySQL定时备份数据库(全库备份)的实现
2021/09/25 MySQL
JS开发前端团队展示控制器来为成员引流
2022/08/14 Javascript