python代码实现判断三角形类型,使用pytest进行代码测试,生成allure测试报告

这篇具有很好参考价值的文章主要介绍了python代码实现判断三角形类型,使用pytest进行代码测试,生成allure测试报告。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、python代码判断三角形类型

二、使用pytest测试代码

三、生成allure测试报告

一、python代码判断三角形类型

写代码之前首先我们要知道满足三角形的条件:

前提条件:三角形边长都为大于0的数字
构成三角形:两边之和大于第三边 即 a+b >c  and a+c>b and  b+c>a   (此三个条件需要同时满足)

满足构成三角形之后,要考虑构成三角形的类型:

三角形分为:直角三角形、等腰三角形、等边三角形、不规则三角形(钝角三角形、锐角三角形) 

直角三角形:两边平方和等于第三边 即 a^2 + b^2 =c^2  or  b^2 + c^2 = a^2   or  a^2 + c^2 = b^2(此三个条件满足一个即可)

等腰三角形:三边任意两边相等 即  a=b != c     or   b=c != a     or     a=c!=b  (此三条件满足一个即可)

等边三角形:三边相等   即  a= b= c  

不规则三角形就是不满足上述特殊三角形的情况

下面是代码 :

def sanjiaoxing(a, b, c):
    if a > 0 and b > 0 and c > 0:
        if a + b > c and b + c > a and a + c > b:  # 判断是否是个三角形
            if a == b == c:  # 等边三角形判断
                return ("此三角形为等边三角形")
            elif a == b != c or b == c != a or a == c != b:  # 等腰三角形判断
                return ("此三角形为等腰三角形")
            elif (a * a + b * b == c * c) or (a * a + c * c == b * b) or (b * b + c * c == a * a):  # 直角三角形判断
                return ("此三角形为直角三角形")
            else:  # 以上三个都不符合
                return ("此三角形为不规则三角形")
        else:  # 不是三角形的
            return ("这构不成三角形")
    else:
        return ("非法输入")

二、使用pytest测试代码

写代码之前,我们首先要写好测试用例,下面是写好的用例:

python代码实现判断三角形类型,使用pytest进行代码测试,生成allure测试报告

pytest是python用来做自动化测试的一个框架,需要事先下载使用,没有下载的,可以先去自行搜索pytest的用法。

下面是三角形用例的代码:

@allure.feature('等腰三角形用例')
@allure.title('a b 两边相等')
# 等腰三角形用例
def test_01():
    test1 = sanjiaoxing(a=4, b=4, c=5)  # a,b 两边相等
    print(test1)
    if __name__ == '__main__':
        assert "等腰三角形" in test1

@allure.feature('等腰三角形用例')
@allure.title('a c 两边相等')
def test_02():
    test2 = sanjiaoxing(a=4, b=5, c=4)  # a,c 两边相等
    print(test2)
    if __name__ == '__main__':
        assert "等腰三角形" in test2

@allure.feature('等腰三角形用例')
@allure.title('c b 两边相等')
def test_03():
    test3 = sanjiaoxing(a=5, b=4, c=4)  # c,b 两边相等
    print(test3)
    if __name__ == '__main__':
        assert "等腰三角形" in test3

@allure.feature('等边三角形用例')
@allure.title('a b c 三边相等')
# 等边三角形用例
def test_04():
    test4 = sanjiaoxing(a=6, b=6, c=6)  # a,b,c 三边相等
    print(test4)
    if __name__ == '__main__':
        assert "等边三角形" in test4

@allure.feature('直角三角形用例')
@allure.title('a平方 + b平方 = c平方')
# 直角三角形用例
def test_05():
    test5 = sanjiaoxing(a=3, b=4, c=5)  # a平方 + b平方 = c平方 直角三角形
    print(test5)
    if __name__ == '__main__':
        assert "直角三角形" in test5

@allure.feature('直角三角形用例')
@allure.title('c平方 + b平方 = a平方')
def test_06():
    test6 = sanjiaoxing(a=5, b=4, c=3)  # c平方 + b平方 = a平方 直角三角形
    print(test6)
    if __name__ == '__main__':
        assert "直角三角形" in test6

@allure.feature('直角三角形用例')
@allure.title('a平方 + c平方 = b平方')
def test_07():
    test7 = sanjiaoxing(a=3, b=5, c=4)  # a平方 + c平方 = b平方 直角三角形
    print(test7)
    if __name__ == '__main__':
        assert "直角三角形" in test7

@allure.feature('直角三角形用例')
@allure.title('c平方 + b平方 = a平方')
def test_08():
    test8 = sanjiaoxing(a=50000000, b=40000000, c=30000000)  # c平方 + b平方 = a平方 直角三角形
    print(test8)
    if __name__ == '__main__':
        assert "直角三角形" in test8

@allure.feature('不规则三角形用例')
@allure.title('满足 a + b > c的不规则三角形')
# 不规则三角形
def test_09():
    test9 = sanjiaoxing(a=4, b=9, c=7)  # 不是特殊三角形,但满足 a + b > c
    print(test9)
    if __name__ == '__main__':
        assert "不规则三角形" in test9

@allure.feature('不规则三角形用例')
@allure.title('满足 c + b > a的不规则三角形')
def test_10():
    test10 = sanjiaoxing(a=7, b=4, c=9)  # 不是特殊三角形,但满足 c + b > a
    print(test10)
    if __name__ == '__main__':
        assert "不规则三角形" in test10

@allure.feature('不规则三角形用例')
@allure.title('满足 a + c > b的不规则三角形')
def test_11():
    test11 = sanjiaoxing(a=9, b=7, c=4)  # 不是特殊三角形,但满足 a + c > b
    print(test11)
    if __name__ == '__main__':
        assert "不规则三角形" in test11

@allure.feature('构不成三角形用例')
@allure.title('a + b < c  两边之和小于第三边 构不成三角形')
# 构不成三角形 (两边之和小于第三边)
def test_12():
    test12 = sanjiaoxing(a=1, b=2, c=5)  # a + b < c  两边之和小于第三边 构不成三角形
    print(test12)
    if __name__ == '__main__':
        assert "构不成三角形" in test12

@allure.feature('构不成三角形用例')
@allure.title('a + c < b  两边之和小于第三边 构不成三角形')
def test_13():
    test13 = sanjiaoxing(a=2, b=1, c=5)  # a + c < b  两边之和小于第三边 构不成三角形
    print(test13)
    if __name__ == '__main__':
        assert "构不成三角形" in test13

@allure.feature('构不成三角形用例')
@allure.title('b + c < a 两边之和小于第三边 构不成三角形')
def test_14():
    test14 = sanjiaoxing(a=5, b=1, c=2)  # b + c < a  两边之和小于第三边 构不成三角形
    print(test14)
    if __name__ == '__main__':
        assert "构不成三角形" in test14

@allure.feature('构不成三角形用例')
@allure.title('a + b = c 两边之和等于第三边 构不成三角形')
# 构不成三角形 (两边之和等于第三边)
def test_15():
    test15 = sanjiaoxing(a=1, b=2, c=3)  # a + b = c  两边之和等于第三边 构不成三角形
    print(test15)
    if __name__ == '__main__':
        assert "构不成三角形" in test15

@allure.feature('构不成三角形用例')
@allure.title('a + c = b 两边之和等于第三边 构不成三角形')
def test_16():
    test16 = sanjiaoxing(a=2, b=1, c=3)  # a + c = b  两边之和等于第三边 构不成三角形
    print(test16)
    if __name__ == '__main__':
        assert "构不成三角形" in test16

@allure.feature('构不成三角形用例')
@allure.title(' c + b = a 两边之和等于第三边 构不成三角形')
def test_17():
    test17 = sanjiaoxing(a=3, b=1, c=2)  # c + b = a  两边之和等于第三边 构不成三角形
    print(test17)
    if __name__ == '__main__':
        assert "构不成三角形" in test17

@allure.feature('非法输入')
@allure.title('a b c 为0')
# 非法输入
def test_18():
    test18 = sanjiaoxing(a=0, b=0, c=0)  # a b  c  为 0  非法输入
    print(test18)
    if __name__ == '__main__':
        assert "非法输入" in test18

@allure.feature('非法输入')
@allure.title('a b c 为负数')
def test_19():
    test19 = sanjiaoxing(a=-1, b=-1, c=-1)  # a  b  c  为负数  非法输入
    print(test19)
    if __name__ == '__main__':
        assert "构不成三角形" in test19

代码中的@allure.feature、@allure.title是allure-pytest模块要使用的,后面会讲解到。

三、生成allure测试报告

Allure 是在 Pytest 执行完生成的测试数据的基础上,对测试数据进行处理统计,生成格式统一、美观的测试报告。

上面代码用到了@allure.feature、@allure.title ,其中@allure.feature是用例的大目录,@allure.title是用例的标题。

要想生成allure测试报告,我们需要加下面代码:

if __name__ == '__main__':
    # 执行pytest单元测试,生成 Allure 报告需要的数据存在 /Triangeleresult 目录
    pytest.main(['TriangeleUnitTesting.py','--alluredir','./Triangeleresult'])
    # 执行命令 allure generate ./Triangeleresult -o ./Triangelereport --clean ,生成测试报告
    os.system('allure generate ./Triangeleresult -o ./Triangelereport --clean')

下面是完整的代码:

import pytest,allure,os


def sanjiaoxing(a, b, c):
    if a > 0 and b > 0 and c > 0:
        if a + b > c and b + c > a and a + c > b:  # 判断是否是个三角形
            if a == b == c:  # 等边三角形判断
                return ("此三角形为等边三角形")
            elif a == b != c or b == c != a or a == c != b:  # 等腰三角形判断
                return ("此三角形为等腰三角形")
            elif (a * a + b * b == c * c) or (a * a + c * c == b * b) or (b * b + c * c == a * a):  # 直角三角形判断
                return ("此三角形为直角三角形")
            else:  # 以上三个都不符合
                return ("此三角形为不规则三角形")
        else:  # 不是三角形的
            return ("这构不成三角形")
    else:
        return ("非法输入")


@allure.feature('等腰三角形用例')
@allure.title('a b 两边相等')
# 等腰三角形用例
def test_01():
    test1 = sanjiaoxing(a=4, b=4, c=5)  # a,b 两边相等
    print(test1)
    if __name__ == '__main__':
        assert "等腰三角形" in test1

@allure.feature('等腰三角形用例')
@allure.title('a c 两边相等')
def test_02():
    test2 = sanjiaoxing(a=4, b=5, c=4)  # a,c 两边相等
    print(test2)
    if __name__ == '__main__':
        assert "等腰三角形" in test2

@allure.feature('等腰三角形用例')
@allure.title('c b 两边相等')
def test_03():
    test3 = sanjiaoxing(a=5, b=4, c=4)  # c,b 两边相等
    print(test3)
    if __name__ == '__main__':
        assert "等腰三角形" in test3

@allure.feature('等边三角形用例')
@allure.title('a b c 三边相等')
# 等边三角形用例
def test_04():
    test4 = sanjiaoxing(a=6, b=6, c=6)  # a,b,c 三边相等
    print(test4)
    if __name__ == '__main__':
        assert "等边三角形" in test4

@allure.feature('直角三角形用例')
@allure.title('a平方 + b平方 = c平方')
# 直角三角形用例
def test_05():
    test5 = sanjiaoxing(a=3, b=4, c=5)  # a平方 + b平方 = c平方 直角三角形
    print(test5)
    if __name__ == '__main__':
        assert "直角三角形" in test5

@allure.feature('直角三角形用例')
@allure.title('c平方 + b平方 = a平方')
def test_06():
    test6 = sanjiaoxing(a=5, b=4, c=3)  # c平方 + b平方 = a平方 直角三角形
    print(test6)
    if __name__ == '__main__':
        assert "直角三角形" in test6

@allure.feature('直角三角形用例')
@allure.title('a平方 + c平方 = b平方')
def test_07():
    test7 = sanjiaoxing(a=3, b=5, c=4)  # a平方 + c平方 = b平方 直角三角形
    print(test7)
    if __name__ == '__main__':
        assert "直角三角形" in test7

@allure.feature('直角三角形用例')
@allure.title('c平方 + b平方 = a平方')
def test_08():
    test8 = sanjiaoxing(a=50000000, b=40000000, c=30000000)  # c平方 + b平方 = a平方 直角三角形
    print(test8)
    if __name__ == '__main__':
        assert "直角三角形" in test8

@allure.feature('不规则三角形用例')
@allure.title('满足 a + b > c的不规则三角形')
# 不规则三角形
def test_09():
    test9 = sanjiaoxing(a=4, b=9, c=7)  # 不是特殊三角形,但满足 a + b > c
    print(test9)
    if __name__ == '__main__':
        assert "不规则三角形" in test9

@allure.feature('不规则三角形用例')
@allure.title('满足 c + b > a的不规则三角形')
def test_10():
    test10 = sanjiaoxing(a=7, b=4, c=9)  # 不是特殊三角形,但满足 c + b > a
    print(test10)
    if __name__ == '__main__':
        assert "不规则三角形" in test10

@allure.feature('不规则三角形用例')
@allure.title('满足 a + c > b的不规则三角形')
def test_11():
    test11 = sanjiaoxing(a=9, b=7, c=4)  # 不是特殊三角形,但满足 a + c > b
    print(test11)
    if __name__ == '__main__':
        assert "不规则三角形" in test11

@allure.feature('构不成三角形用例')
@allure.title('a + b < c  两边之和小于第三边 构不成三角形')
# 构不成三角形 (两边之和小于第三边)
def test_12():
    test12 = sanjiaoxing(a=1, b=2, c=5)  # a + b < c  两边之和小于第三边 构不成三角形
    print(test12)
    if __name__ == '__main__':
        assert "构不成三角形" in test12

@allure.feature('构不成三角形用例')
@allure.title('a + c < b  两边之和小于第三边 构不成三角形')
def test_13():
    test13 = sanjiaoxing(a=2, b=1, c=5)  # a + c < b  两边之和小于第三边 构不成三角形
    print(test13)
    if __name__ == '__main__':
        assert "构不成三角形" in test13

@allure.feature('构不成三角形用例')
@allure.title('b + c < a 两边之和小于第三边 构不成三角形')
def test_14():
    test14 = sanjiaoxing(a=5, b=1, c=2)  # b + c < a  两边之和小于第三边 构不成三角形
    print(test14)
    if __name__ == '__main__':
        assert "构不成三角形" in test14

@allure.feature('构不成三角形用例')
@allure.title('a + b = c 两边之和等于第三边 构不成三角形')
# 构不成三角形 (两边之和等于第三边)
def test_15():
    test15 = sanjiaoxing(a=1, b=2, c=3)  # a + b = c  两边之和等于第三边 构不成三角形
    print(test15)
    if __name__ == '__main__':
        assert "构不成三角形" in test15

@allure.feature('构不成三角形用例')
@allure.title('a + c = b 两边之和等于第三边 构不成三角形')
def test_16():
    test16 = sanjiaoxing(a=2, b=1, c=3)  # a + c = b  两边之和等于第三边 构不成三角形
    print(test16)
    if __name__ == '__main__':
        assert "构不成三角形" in test16

@allure.feature('构不成三角形用例')
@allure.title(' c + b = a 两边之和等于第三边 构不成三角形')
def test_17():
    test17 = sanjiaoxing(a=3, b=1, c=2)  # c + b = a  两边之和等于第三边 构不成三角形
    print(test17)
    if __name__ == '__main__':
        assert "构不成三角形" in test17

@allure.feature('非法输入')
@allure.title('a b c 为0')
# 非法输入
def test_18():
    test18 = sanjiaoxing(a=0, b=0, c=0)  # a b  c  为 0  非法输入
    print(test18)
    if __name__ == '__main__':
        assert "非法输入" in test18

@allure.feature('非法输入')
@allure.title('a b c 为负数')
def test_19():
    test19 = sanjiaoxing(a=-1, b=-1, c=-1)  # a  b  c  为负数  非法输入
    print(test19)
    if __name__ == '__main__':
        assert "构不成三角形" in test19


if __name__ == '__main__':
    # 执行pytest单元测试,生成 Allure 报告需要的数据存在 /Triangeleresult 目录
    pytest.main(['TriangeleUnitTesting.py','--alluredir','./Triangeleresult'])
    # 执行命令 allure generate ./Triangeleresult -o ./Triangelereport --clean ,生成测试报告
    os.system('allure generate ./Triangeleresult -o ./Triangelereport --clean')

执行之后可以看到生成了Triangeleresult 和Triangelereport文件夹,此时打开Triangelereport文件夹,找到index.html 右键找到 open in  -->找到Browser 选择浏览器打开即可打开测试报告。

python代码实现判断三角形类型,使用pytest进行代码测试,生成allure测试报告

allure报告:

python代码实现判断三角形类型,使用pytest进行代码测试,生成allure测试报告

可以看到 @allure.feature、@allure.title分的层级。

python代码实现判断三角形类型,使用pytest进行代码测试,生成allure测试报告

以上就是所有内容,本人小白一个python代码实现判断三角形类型,使用pytest进行代码测试,生成allure测试报告,写的不好,请各位的大佬多多指教 。各位看官,看完多多点赞!

python代码实现判断三角形类型,使用pytest进行代码测试,生成allure测试报告文章来源地址https://www.toymoban.com/news/detail-451191.html

到了这里,关于python代码实现判断三角形类型,使用pytest进行代码测试,生成allure测试报告的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 用python画一个五角星的代码,用python画星号三角形

    大家好,小编来为大家解答以下问题,用python画一个五角星的代码,用python画星号三角形,今天让我们一起来看看吧! 大家好,小编为大家解答python编写一个打地鼠的游戏程序的问题。很多人还不知道python编写一个打地鼠的游戏代码,现在让我们一起来看看吧! 如果你没有

    2024年03月24日
    浏览(28)
  • processing判断一个点是否在三角形、圆、椭圆、矩形内(超详细鼠标交互)

    刚好最近在学processing,然后有不少同学遇到一个问题哈, 就是如何用processing判断一个点是否在三角形、圆、椭圆、矩形内,并且联合arduino一起,通过串口通信实现用户在processing发生点击事件,然后通过arduino开发板反馈(亮灯等等) ,这一期我就先出如何解决利用processi

    2023年04月10日
    浏览(26)
  • css实现圆角三角形,圆角三角形的实现

    今天给大家带来一个如何实现圆角三角形的方案,这个方案虽然可以实现,但是也是借助拼凑等方式来实现的,假如想一个div来实现圆角三角形,还是比较困难的。之前文章讲了如何实现对话框,里面介绍了三角形的实现方式。今天讲讲如何实现圆角三角形。 想要生成一个带

    2024年02月09日
    浏览(38)
  • 用python写九九乘法表(左上三角、左下三角、右上三角、右下三角、正三角形、倒三角形格式)

    1.左上三角格式:   2.左下三角格式:   3.右上三角格式:     4.右下角格式:     5.倒三角格式:      

    2024年02月11日
    浏览(43)
  • python求三角形面积

     运用Python求三角形面积,代码如下 在运行后,可得   输入三边长后通过三角形面积公式,可求得三角形的面积,其中需要得知三角形如何运用周长求面积,周长公式为s = (a + b + c) / 2,后用面积公式area = (s*(s-a)*(s-b)*(s-c)) ** 0.5最后输出求得三角形的面积公式。  

    2024年02月11日
    浏览(31)
  • css实现三角形

       1. Border 2. transform 3.  :before 和 :after 伪元素 4. clip-path

    2024年02月09日
    浏览(28)
  • 120. 三角形最小路径和 Python

    给定一个三角形 triangle ,找出自顶向下的最小路径和。 每一步只能移动到下一行中相邻的结点上。 相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。也就是说,如果正位于当前行的下标 i ,那么下一步可以移动到下一行的下

    2023年04月22日
    浏览(29)
  • 用 CSS 实现画三角形

     

    2024年02月14日
    浏览(24)
  • 【CSS】CSS实现三角形(一)

    话不多说,下面介绍两种比较常用的写法: 宽和高都设置为0px,通过border的交点创建三角形,这应该是使用的最多的一种写法。  效果图如下: 好了,四个小三角已经初见雏形了,只需要稍做修改,就能一个个拿出来。 1、上三角 原理简单粗暴,既然我只需要最上面的那个

    2024年02月11日
    浏览(25)
  • OpenGL实现第一个窗口-三角形

    1.简介 此代码是基于Qt+OpenGL实现的,但是大部分的代码是OpenGL,Qt封装了一些类,方便使用。 2.准备工作 QOpenGLWidget 提供了三个便捷的虚函数,可以重写,用来重写实现典型的OpenGL任务。 不需要GLFW。 paintGL:渲染OpenGL场景。widget需要更新时调用。 resizeGL:设置OpenGL视口、投影

    2024年02月08日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包