美文网首页
安卓自动化测试总结(五)——测试结果发送及内容展示

安卓自动化测试总结(五)——测试结果发送及内容展示

作者: 野草2060 | 来源:发表于2016-08-14 22:28 被阅读297次

    安卓自动化测试总结(五)——测试结果发送及内容展示

      使用jenkins自动构建并完成自动化测试后,如果想看测试结果,都需要打开jenkins构建地址,找到对应的构建及构建结果。这样做很麻烦,关心自动化测试结果的人可能在测试用例未执行或没有执行完时,多次打开该构建;或者在运行多次错误结果后,也未看过执行结果。所以,提出了使用邮件发送测试结果的想法。

    发送测试结果邮件

    借用我们接口测试的python发邮件代码,实现了安卓自动化测试结果的自动发送。其发送邮件的示例如下:

    def sendMail(self):

      smtp = smtplib.SMTP()

      smtp.connect(self.smtpserver,25)

      smtp.login(self.sender,self.password)

      self.content =base64.b64encode(self.content)

      msg ="From:%s\nTo:%s\nSubject:%s\nContent-Type:text/html\nContent-Transfer-Encoding:base64\n\n%s"% (self.sender,self.receiver,self.subject,self.content)

      smtp.sendmail(self.sender,self.receiver, msg)

      smtp.close()

      其中self.sender,self.receiver,self.subject,self.content分别是发件人、收件人、主题和发送内容。我们发送邮件前,主要修改的是发送内容,可以是文本内容,也可以是表格或更复杂的邮件内容。

    发送junit结果

      发送文本或表格内容虽然可以满足测试要求,但没有jenkins中显示的junit结果简单明了。所以考虑直接借用jenkins中的junit测试结果。这样既减少代码量,又可以直接关联回jenkins中的对应链接。读取jenkins对应页的python代码如下。

    user_agent ='Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13(KHTML, likeGecko) Version/3.1Safari/525.13'

    values = {'language':'Python'}

    headers = {'User-Agent': user_agent }

    data = urllib.urlencode(values)

    req= urllib2.Request(urlConst, data, headers)

    context = ssl._create_unverified_context()

    response = urllib2.urlopen(req, context=context)

    the_page = response.read()

    testresult = the_page[the_page.index('<h1>Test Result</h1>') + len('<h1>Test Result</h1>):the_page.index('')]

    testresult = testresult.replace('ahref="','ahref="'+ urlConst)

    testresult = testresult.replace('

      把testresult的内容,增加到发送的邮件self.content,就可以让邮件显示测试结果网页了。测试结果网页如下:

    只发送有错误执行结果的邮件

      由于测试自动化在开发提交代码后即立即执行,也因为有时进行调试导致更多的测试次数,很多人觉得邮件发送比较频繁。我们采取的改进方法是,在unstable状态下,才触发发送邮件的job。

    合并多个junit结果

      由于安卓界面自动化的用例有50多个,如果运行在一个jenkins任务,则运行时间比较长,在失败时,也可能有更多意想不到的问题。所以,每个jenkins任务仅执行10多个用例,从冒烟测试、一般测试、很慢的测试等多个角度考虑进行分组。但这样存在一个问题,如何得到一个完整的结果,而不是得到零碎的片面结果,由收到测试结果的人自己在去对比和合并,才能得到一个整体的印象。

      后来想到的就是把测试结果从各个jenkins任务拷贝过来,然后进行合并,把合并后的结果,像一次执行的结果一样,发送邮件。因为,合并后的结果,本身就和一次执行得到的结果没有区别。

      自动化结果的展示和邮件发送,不同的人提出了不同的问题,才逐渐改进成目前的样子。后续,将根据对当前结果的意见,继续改进,以便更能符合测试和开发的要求。

    相关文章

      网友评论

          本文标题:安卓自动化测试总结(五)——测试结果发送及内容展示

          本文链接:https://www.haomeiwen.com/subject/iqtusttx.html