51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 5548|回复: 8

selenium+python用例执行结果及测试报告

[复制链接]
  • TA的每日心情
    无聊
    2018-5-10 09:16
  • 签到天数: 172 天

    连续签到: 2 天

    [LV.7]测试师长

    发表于 2017-3-1 10:01:40 | 显示全部楼层 |阅读模式
    selenium+python用例执行结果及测试报告
    ui自动化操作只是模拟人工去操作,只是一个过程,但实际这个操作过程导致的结果是否正确?如何去做?元素判断吗?生成截图?
    1、比如登陆,100个用例,90个无效用例,需要登陆100次
    2、可以根据元素定位判断是否登陆成功
    3、但90个无效用例登陆失败,反馈结果是否正确?是否只能通过截图来验证?
    4、这样下来截90个图一一去核对用例和图验证,是不是太麻烦了?


    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2021-12-15 15:17
  • 签到天数: 138 天

    连续签到: 2 天

    [LV.7]测试师长

    发表于 2017-3-1 12:34:29 | 显示全部楼层
    是不是需要添加断言,类似于loadrunner中的检查点。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-5-10 09:16
  • 签到天数: 172 天

    连续签到: 2 天

    [LV.7]测试师长

     楼主| 发表于 2017-3-1 12:52:38 | 显示全部楼层
    测试菜鸟梦 发表于 2017-3-1 12:34
    是不是需要添加断言,类似于loadrunner中的检查点。

    不是
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-5-10 09:16
  • 签到天数: 172 天

    连续签到: 2 天

    [LV.7]测试师长

     楼主| 发表于 2017-3-1 12:53:04 | 显示全部楼层
    测试菜鸟梦 发表于 2017-3-1 12:34
    是不是需要添加断言,类似于loadrunner中的检查点。

    恩  差不都吧应该
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2017-3-1 13:43
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    发表于 2017-3-1 13:39:38 | 显示全部楼层
    1:断言:
        def test_1(self):
            driver = self.driver
            driver.get(self.base_url + "/login")
            driver.find_element_by_id("username").clear()
            driver.find_element_by_id("username").send_keys("1")

            driver.find_element_by_id("password").clear()
            driver.find_element_by_id("password").send_keys("1")
            driver.find_element_by_id("login-btn01").click()

            for i in range(60):
                try:
                    if u"验证失败!请检查您的登录信息, 并重试一次." == driver.find_element_by_id("loginErrorInfo").text: break
                except: pass
                time.sleep(1)
            else: self.fail("time out")
    2: 对比图片:

    from PIL import Image

    def make_regalur_image(img, size = (256, 256)):
            return img.resize(size).convert('RGB')

    def split_image(img, part_size = (64, 64)):
            w, h = img.size
            pw, ph = part_size
           
            assert w % pw == h % ph == 0
           
            return [img.crop((i, j, i+pw, j+ph)).copy() \
                                    for i in xrange(0, w, pw) \
                                    for j in xrange(0, h, ph)]

    def hist_similar(lh, rh):
            assert len(lh) == len(rh)
            return sum(1 - (0 if l == r else float(abs(l - r))/max(l, r)) for l, r in zip(lh, rh))/len(lh)

    def calc_similar(li, ri):
    #        return hist_similar(li.histogram(), ri.histogram())
            return sum(hist_similar(l.histogram(), r.histogram()) for l, r in zip(split_image(li), split_image(ri))) / 16.0
                           

    def calc_similar_by_path(lf, rf):
            li, ri = make_regalur_image(Image.open(lf)), make_regalur_image(Image.open(rf))
            return calc_similar(li, ri)

    def make_doc_data(lf, rf):
            li, ri = make_regalur_image(Image.open(lf)), make_regalur_image(Image.open(rf))
            li.save(lf + '_regalur.png')
            ri.save(rf + '_regalur.png')
            fd = open('stat.csv', 'w')
            fd.write('\n'.join(l + ',' + r for l, r in zip(map(str, li.histogram()), map(str, ri.histogram()))))
    #        print >>fd, '\n'
    #        fd.write(','.join(map(str, ri.histogram())))
            fd.close()
            import ImageDraw
            li = li.convert('RGB')
            draw = ImageDraw.Draw(li)
            for i in xrange(0, 256, 64):
                    draw.line((0, i, 256, i), fill = '#ff0000')
                    draw.line((i, 0, i, 256), fill = '#ff0000')
            li.save(lf + '_lines.png')

    if __name__ == '__main__':
        for i in xrange(1, 6):
            print  i
            img1 = 'C:\\work\\dart\\src\\test\\e2e\\spec\\test\\result\\login\\'+str(i)+'.png'
            print img1
            img2 = 'C:\\work\\dart\\src\\test\\e2e\\spec\\test\\old\\login\\'+str(i)+'.png'
                    print img2
            print 'test_case_%d: %.3f%%'%(i,calc_similar_by_path(img1, img2)*100)
    #        make_doc_data('test/TEST4/1.JPG', 'test/TEST4/2.JPG')

    评分

    参与人数 1测试积点 +10 收起 理由
    lsekfe + 10 积极回复获得测试积点10

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-5-3 18:09
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    发表于 2017-3-1 13:41:27 | 显示全部楼层
    看问题同学是想问如果判断用例执行结果(ps:失败or通过)
    1:拿登录来说,登录失败 UI上会有提示吧  可以通过这个提示来判断,然后 把用例结果记录下来(比如:可以写在excel里);当然也可以用pyunit自带的断言库做一些简单的断言(建议自己写断言判断方法)。
    2:深入问下同学,你自动化测试用例怎么管理?  测试报告怎么自动发送? 用例的数据如何组织? 怎样才能利用框架实现代码复用和框架的扩展性?  请仔细思考下~

    评分

    参与人数 1测试积点 +10 收起 理由
    lsekfe + 10 积极回复获得测试积点10

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-5-10 09:16
  • 签到天数: 172 天

    连续签到: 2 天

    [LV.7]测试师长

     楼主| 发表于 2017-3-1 16:08:47 | 显示全部楼层
    菜鸟@大虾 发表于 2017-3-1 13:41
    看问题同学是想问如果判断用例执行结果(ps:失败or通过)
    1:拿登录来说,登录失败 UI上会有提示吧  可以通 ...

    嗯 谢谢,我目前学习中
    1、失败用例提示可以获取是吧?获取到我导入excel,断言目前还没有学到,目前我只是用元素定位判断呢,感觉应该用断言可靠性更高点
    2、没有什么用例了,我只是excel记录了用户名和密码导入的,然后测试结果再导入excel,我还没有到这么深入的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-5-10 09:16
  • 签到天数: 172 天

    连续签到: 2 天

    [LV.7]测试师长

     楼主| 发表于 2017-3-1 16:10:50 | 显示全部楼层
    hyj785 发表于 2017-3-1 13:39
    1:断言:
        def test_1(self):
            driver = self.driver

    谢谢!
    我在学习中,我会慢慢研究下的
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-3-29 13:33 , Processed in 0.076016 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表