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分类测试代码实例汇总相关推荐

  1. 小米黑鲨鱼*#*#测试代码_旧代码到可测试代码#3:添加设置器访问器

    小米黑鲨鱼*#*#测试代码 爱尔兰塞特犬. 他是个傻瓜. 这篇文章是" 传统代码到可测试代码 "系列的一部分. 在本系列中,我们将讨论在为遗留代码编写测试之前进行重构的步骤,以及它 ...

  2. 十五、Python第十五课——测试代码

    (请先看这篇文章:https://blog.csdn.net/GenuineMonster/article/details/104495419) 也许你听过软件测试?编写函数或类时,可以为其编写对应的 ...

  3. S3C6410开发板adc驱动代码分析及测试代码分析

    在本文中,我们对S3C6410开发板adc驱动代码的实现过程进行分析,然后通过一个实例对adc功能进行测试.在本文的资源中包含了设备驱动的源码和测试的源码. 一.设备驱动源码分析 adc的设备驱动主要 ...

  4. S3C6410开发板LED驱动代码分析及测试代码分析

    在本文中,我们对S3C6410开发板LED驱动代码的实现过程进行分析,然后通过一个实例对LED进行控制.在本文的资源中包含了设备驱动的源码和测试的源码. 一.设备驱动源码分析 设备驱动主要实现了模块的 ...

  5. S3C6410开发板按键驱动代码分析及测试代码分析

    在本文中,我们对S3C6410开发板按键驱动代码的实现过程进行分析,然后通过一个实例对按键功能进行测试.在本文的资源中包含了设备驱动的源码和测试的源码. 一.设备驱动源码分析 按键的设备驱动主要实现了 ...

  6. python测试代码_python入门-测试代码

    断言 测试函数 defget_formatted_name(first,last):"""generate a neatly formattef full name&qu ...

  7. python测试代码怎么写_Python 单元测试

    Test your software, or your users will. "Test ruthlessly. Don't make your users find bugs for y ...

  8. python中文软件-Python

    Python是一款通用型的计算机程序设计语言,Python对编程人员来说是一款非常有利的工具,可以让您快速编写代码,而且代码运行速度非常快.Python具有非常简捷而清晰的语法特点,适合完成各种高层任 ...

  9. python实现logistic_使用python实现logistic二分类

    这段时间做了一个二分类的任务,训练数据是8000个包含1000个特征和一个label的数据.下面记录一下使用python实现logistic二分类的代码. import os import time ...

最新文章

  1. 1分钟10万字大法:量子波动速读、蒙眼翻书穿针,这是席卷15省的最新智商税...
  2. 如何用python创建一个下载网站-用Python写一个简单的网页下载
  3. 同步阻塞处理的几种方法
  4. python程序设计试卷_2013Python程序设计期末试卷A
  5. 编写一个算法frequency,统计在一个输入字符串中各个不同字符出现的频度。用适当的测试数据来验证这个算法。
  6. PaddlePaddle训练营——公开课——AI核心技术掌握——第1章迈入现代人工智能的大门——Modern AI骨架脉络
  7. 下述有关计算机网络的描述错误的是6,下述有关计算机总线的描述错误的是( ) 。...
  8. JAVA语法基础 动手动脑及课后作业
  9. c++ 方向_GE医疗C型臂系列手术机设备全球装机量破万
  10. java addbatch_使用addBatch java时丢失数据
  11. php中数组自定义排序
  12. JEECG框架的dictSelect下拉
  13. java水果仓库管理系统_java水果商城管理系统(界面框架代码)
  14. WPS图片精简版 Ver.3.0.5
  15. stokes方程matlab,【Fluent】雷诺方程:推导与求解(附MATLAB代码)
  16. Pyspark获取hdfs上多个文件
  17. NetWorkHelper 检测网络状态
  18. 深入浅出解析变分法——一种常用的数学方法
  19. python clicknium 微信发送消息以及获取好友列表
  20. Android自定义圆角矩形图片ImageView

热门文章

  1. numpy vsplit
  2. 拼接字符串时去掉最后一个多余逗号
  3. 2017-11-3—grow up
  4. 安装oracle并且小总结oracle sql
  5. 【Raspberry Pi】定时运行python程序读温湿度传感器数据发邮件
  6. django中如何优雅的处理一个多按钮的表单
  7. APACHE 2.2.8+TOMCAT6.0.14配置负载均衡
  8. MySQL—02—MySQL的操作
  9. 剑指offer(19): 顺时针打印矩阵
  10. MySQL-查询数据(SELECT)