基于Python测试程序是否有错误


Posted in Python onMay 16, 2020

1、首先介绍简单的try......except尝试运行的放例如下面的图和代码来简单介绍下:

def test(x,y):
  print(x+y)
try:
  test()
except:
  print('Error')
test(2,4)

test测试的函数,没传参数的x,y,函数结果是要答应x加y的和

try:试着执行test()函数,正常就执行函数并打印x加y的和

except:否则 打印'Error' 因为我这test没有给x,y定义传参数,所以会走到except

结果:

基于Python测试程序是否有错误

2、我们以上次排球比赛程序为例子做测试:

from random import random
def printIntro():     #打印程序介绍信息
  print("10号张颖慧进行比赛分析结果:")
  print("这个程序模拟两个选手A和B的某种竞技比赛")
  print("程序运行需要A和B的能力值(以0到1之间的小数表示)")
def getInputs():      #获得程序运行参数
  a = eval(input("请输入选手A的能力值(0-1): "))
  b = eval(input("请输入选手B的能力值(0-1): "))
  n = eval(input("模拟比赛的场次: "))
  return a, b, n
def simNGames(n, probA, probB):  # 进行N场比赛
  winsA, winsB = 0, 0
  for i in range(n):
    for j in range(7):      #进行7局4胜的比赛
      scoreA, scoreB = simOneGame(probA, probB)
      if scoreA > scoreB:
        winsA += 1
      else:
        winsB += 1
  return winsA, winsB
try:
  simNGames(0.55)
except:
  print("simNGames Error")
  
def gameOver(a,b):        #正常比赛结束
  return a==24 or b==24
def gameOver2(a,b):       #进行抢12比赛结束
  if abs((a-b))>=2:
    return a,b
def simOneGame(probA, probB):     #进行一场比赛
  scoreA, scoreB = 0, 0      #初始化AB的得分
  serving = "A"        
  while not gameOver(scoreA, scoreB):   #用while循环来执行比赛
    if scoreA==10 and scoreB==10:
      return(simtwoGame2(probA,probB))
    if serving == "A":
      if random() < probA:      ##用随机数生成胜负
        scoreA += 1
      else:
        serving="B"
    else:
      if random() < probB:
        scoreB += 1
      else:
        serving="A"
  return scoreA, scoreB
try:
  simOneGame(0.54)
except:
  print("simNGame Error")
  
def simtwoGame2(probA,probB):
  scoreA,scoreB=23,23
  serving = "A"
  while not gameOver2(scoreA, scoreB):
    if serving == "A":
      if random() < probA:
        scoreA += 1
      else:
        serving="B"
    else:
      if random() < probB:
        scoreB += 1
      else:
        serving="A"
  return scoreA, scoreB
try:
  simtwoGame2(0.44,0.66)
except:
  print("simNGame2 Error")
  
def printSummary(winsA, winsB):
  n = winsA + winsB
  print("竞技分析开始,共模拟{}场比赛".format(n))
  print("选手A获胜{}场比赛,占比{:0.1%}".format(winsA, winsA/n))
  print("选手B获胜{}场比赛,占比{:0.1%}".format(winsB, winsB/n))
def main():
  printIntro()
  probA, probB, n = getInputs()
  winsA, winsB = simNGames(n, probA, probB)
  printSummary(winsA, winsB)
main()

这个代码中,在一些函数后用try.....except测试了一遍,如果有错误会分别对某个函数进行报错。

因为小编在参数中故意写错,故会出现错误

运行结果如下:

基于Python测试程序是否有错误

当然还可以执行多个函数及条件的测试都可以,这样可以实现自动化测试业务代码,还可以穿插在程序中你需要的地方

做检测等,这样你的程序会按流程走,这块又可以得到你要的测试效果。来看看代码如下:

x = 0
lis_y = [i for i in range(80,85)]

def test(x,y):
  print(x+y," ")

def test1(x,y):
  print(x*y)

try:
  while x < 20:
    for y in lis_y:
      test(x,y)
      test1(x,chr(y))
      x+=1
except:
  print('Error')

运行结果如下:

基于Python测试程序是否有错误

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

Python 相关文章推荐
Python中的map、reduce和filter浅析
Apr 26 Python
Python深入学习之装饰器
Aug 31 Python
使用Python内置的模块与函数进行不同进制的数的转换
Mar 12 Python
Django实现登录随机验证码的示例代码
Jun 20 Python
Python浮点数四舍五入问题的分析与解决方法
Nov 19 Python
pytorch逐元素比较tensor大小实例
Jan 03 Python
解决tensorflow由于未初始化变量而导致的错误问题
Jan 06 Python
解决django接口无法通过ip进行访问的问题
Mar 27 Python
使用keras和tensorflow保存为可部署的pb格式
May 25 Python
使用Nibabel库对nii格式图像的读写操作
Jul 01 Python
python3访问字典里的值实例方法
Nov 18 Python
python 闭包函数详细介绍
Apr 19 Python
关于matplotlib-legend 位置属性 loc 使用说明
May 16 #Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
May 16 #Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
May 16 #Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
May 16 #Python
Python验证码截取识别代码实例
May 16 #Python
基于plt.title无法显示中文的快速解决
May 16 #Python
基于python生成英文版词云图代码实例
May 16 #Python
You might like
ThinkPHP之A方法实例讲解
2014/06/20 PHP
php出现web系统多域名登录失败的解决方法
2014/09/30 PHP
PHP使用curl函数发送Post请求的注意事项
2016/11/26 PHP
php提取微信账单的有效信息
2018/10/01 PHP
Javascript实例教程(19) 使用HoTMetal(1)
2006/12/23 Javascript
FormValidate 表单验证功能代码更新并提供下载
2008/08/23 Javascript
使用JS进行目录上传(相当于批量上传)
2010/12/05 Javascript
js获得当前时区夏令时发生和终止的时间代码
2014/02/23 Javascript
Javascript学习指南
2014/12/01 Javascript
使用javascript实现雪花飘落的效果
2015/01/13 Javascript
NodeJS创建基础应用并应用模板引擎
2016/04/12 NodeJs
Bootstrap表单布局样式源代码
2016/07/04 Javascript
nodejs的压缩文件模块archiver用法示例
2017/01/18 NodeJs
详解Vue 开发模式下跨域问题
2017/06/06 Javascript
Vue实现点击时间获取时间段查询功能
2020/08/21 Javascript
vue.js 实现点击按钮动态添加li的方法
2018/09/07 Javascript
微信小程序 高德地图路线规划实现过程详解
2019/08/05 Javascript
微信小程序获取用户信息及手机号(后端TP5.0)
2019/09/12 Javascript
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
2020/02/04 jQuery
JS造成内存泄漏的几种情况实例分析
2020/03/02 Javascript
Python函数中定义参数的四种方式
2014/11/30 Python
python使用wmi模块获取windows下硬盘信息的方法
2015/05/15 Python
快速排序的算法思想及Python版快速排序的实现示例
2016/07/02 Python
python ---lambda匿名函数介绍
2019/03/13 Python
解决python3中的requests解析中文页面出现乱码问题
2019/04/19 Python
Python获取命令实时输出-原样彩色输出并返回输出结果的示例
2019/07/11 Python
使用Python测试Ping主机IP和某端口是否开放的实例
2019/12/17 Python
小白教你PyCharm从下载到安装再到科学使用PyCharm2020最新激活码
2020/09/25 Python
Lacoste美国官网:经典POLO衫品牌
2016/10/12 全球购物
Carter’s官方旗舰店:美国受欢迎的婴童服装品牌
2018/01/21 全球购物
世界上最好的儿童品牌:AlexandAlexa
2018/01/27 全球购物
美国便宜的横幅和标志印刷在线:Best of Signs
2019/05/29 全球购物
向国旗敬礼活动总结
2014/09/27 职场文书
2015年生产车间工作总结
2015/04/22 职场文书
无线电知识基础入门篇
2022/02/18 无线电
Nginx实现会话保持的两种方式
2022/03/18 Servers