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 linecache.getline()读取文件中特定一行的脚本
Sep 06 Python
Python 元组(Tuple)操作详解
Mar 11 Python
闭包在python中的应用之translate和maketrans用法详解
Aug 27 Python
初学Python函数的笔记整理
Apr 07 Python
尝试使用Python多线程抓取代理服务器IP地址的示例
Nov 09 Python
wxPython的安装与使用教程
Aug 31 Python
Python Cookie 读取和保存方法
Dec 28 Python
PyCharm的设置方法和第一个Python程序的建立
Jan 16 Python
django之导入并执行自定义的函数模块图解
Apr 01 Python
Django REST framwork的权限验证实例
Apr 02 Python
Keras设定GPU使用内存大小方式(Tensorflow backend)
May 22 Python
想学画画?python满足你!
Dec 24 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/04/17 PHP
Drupal 添加模块出现莫名其妙的错误的解决方法(往往出现在模块较多时)
2011/04/18 PHP
第二章 PHP入门基础之php代码写法
2011/12/30 PHP
javascript  Error 对象 错误处理
2008/05/18 Javascript
js监听表单value的修改同步问题,跨浏览器支持
2009/12/31 Javascript
javascript开发技术大全 第4章 直接量与字符集
2011/07/03 Javascript
多个表单中如何获得这个文件上传的网址实现js代码
2013/03/25 Javascript
js网页版计算器的简单实现
2013/07/02 Javascript
jquery ztree实现下拉树形框使用到了json数据
2014/05/14 Javascript
jquery+ajax+text文本框实现智能提示完整实例
2016/07/09 Javascript
详解jQuery选择器
2016/12/21 Javascript
使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
2017/03/15 Javascript
微信小程序中使用Promise进行异步流程处理的实例详解
2017/08/17 Javascript
Vue实现数据请求拦截
2019/10/23 Javascript
关于vue.js中实现方法内某些代码延时执行
2019/11/14 Javascript
js实现贪吃蛇小游戏(加墙)
2020/07/31 Javascript
vue项目里面引用svg文件并给svg里面的元素赋值
2020/08/17 Javascript
[00:50]深扒TI7聊天轮盘语音出处6
2017/05/11 DOTA
[01:11:35]Liquid vs LGD 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python转换HTML到Text纯文本的方法
2015/01/15 Python
python3使用pyqt5制作一个超简单浏览器的实例
2017/10/19 Python
Python基于回溯法解决01背包问题实例
2017/12/06 Python
tensorflow输出权重值和偏差的方法
2018/02/10 Python
Jacobi迭代算法的Python实现详解
2019/06/29 Python
pycharm设置默认的UTF-8编码模式的方法详解
2020/06/01 Python
python os模块常用的29种方法使用详解
2020/06/02 Python
CSS3新增布局之: flex详解
2020/06/18 HTML / CSS
智能旅行箱:Horizn Studios
2018/04/30 全球购物
Aquatalia官网:意大利著名鞋履品牌
2019/09/26 全球购物
Shell编程面试题
2016/05/29 面试题
酒店管理毕业生自荐信
2013/10/24 职场文书
上课睡觉检讨书300字
2014/11/18 职场文书
2016年第32个教师节致辞
2015/11/26 职场文书
2019年学校消防安全责任书(2篇)
2019/10/09 职场文书
python爬取新闻门户网站的示例
2021/04/25 Python
JS如何使用剪贴板操作Clipboard API
2021/05/17 Javascript