黑盒测试 发表于 2017-3-1 10:01:40

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

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


测试菜鸟梦 发表于 2017-3-1 12:34:29

是不是需要添加断言,类似于loadrunner中的检查点。

黑盒测试 发表于 2017-3-1 12:52:38

测试菜鸟梦 发表于 2017-3-1 12:34
是不是需要添加断言,类似于loadrunner中的检查点。

不是

黑盒测试 发表于 2017-3-1 12:53:04

测试菜鸟梦 发表于 2017-3-1 12:34
是不是需要添加断言,类似于loadrunner中的检查点。

恩差不都吧应该

hyj785 发表于 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):
      printi
      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')

菜鸟@大虾 发表于 2017-3-1 13:41:27

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

黑盒测试 发表于 2017-3-1 16:08:47

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

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

黑盒测试 发表于 2017-3-1 16:10:50

hyj785 发表于 2017-3-1 13:39
1:断言:
    def test_1(self):
      driver = self.driver


谢谢!
我在学习中,我会慢慢研究下的

jingzizx 发表于 2017-3-4 10:12:34

学习
页: [1]
查看完整版本: selenium+python用例执行结果及测试报告