当前位置: 首页 > 知识库问答 >
问题:

量角器-Jasmine2-HTML-报表

罗奇文
2023-03-14

我正在工作的报告执行部分在量角器和使用Jasmine2 Html记者。我能够生成一个报告,但是当我的测试完全通过而没有任何失败时,报告仍然显示状态为0.00%。我不知道为什么会这样。我也附上快照作为参考。

代码为:

var HtmlReporter=require('Protractor-Jasmine2-HTML-Reporter');

var reporter = new HtmlReporter({
    plugins: [{
    package: 'jasmine2-protractor-utils',
    showSummary: true,
    reportTitle: "Clinicare Report",
    filename: 'Clinicarereport.html',
    disableHTMLReport: false,//disableHTMLReport
    disableScreenshot: false,
    captureOnlyFailedSpecs: true,
    screenshotPath:'./reports/screenshots',
    screenshotOnExpectFailure:true,
    screenshotOnSpecFailure:true,
    dest: 'protractor-reports',
    filename: 'protractor-report.html',
    takeScreenshots: true,
    ignoreSkippedSpecs: true,
    takeScreenshotsOnlyOnFailures: true
//  screenshotsFolder: 'F:\\Screeshots'
    }]
});             
exports.config = 
{

    directconnect: true,
    capabilities: {'browserName': 'chrome'},
    framework: 'jasmine',
    specs: ['example1.js'],
    jasmineNodeOpts: {
    defaultTimeoutInterval: 300000
},
onPrepare: function() {
// Add a screenshot reporter and store screenshots to `/tmp/screenshots`:
      jasmine.getEnv().addReporter(reporter);     
  }
  }

规格代码为:

var Excel = require('exceljs');
        var XLSX = require('xlsx');
        var os = require('os');
        var TEMP_DIR = os.tmpdir();
        var wrkbook = new Excel.Workbook();

        describe('Open the clinicare website by logging into the site', function () {
        it('Should Add a text in username and password fields and hit login button', function () {
        console.log("hello6");

        var wb = XLSX.readFile('E:\\Demo\\Generate a test report\\Data_Login.xlsx');
        var ws = wb.Sheets.Sheet1;
        var json = XLSX.utils.sheet_to_json(wb.Sheets.Sheet1);
        console.log("json", json);  

        //var json = XLSX.utils.sheet_to_json(wb.Sheets.Sheet1);
        //console.log("json", json);

        for(var a = 0; a < json.length ; a++){
                    console.log("Test_URL", json[a].Test_URL);
                    console.log("User_Name", json[a].User_Name);
                    console.log("Password", json[a].Password);
                browser.get(json[a].Test_URL); 

                //Perform Login:UserName 
                element(by.model('accessCode')).sendKeys(json[a].User_Name); 

                //Perform Login:Password 
                element(by.model('password')).sendKeys(json[a].Password); 

                //Perform Login:LoginButton 
                element(by.css('.btn.btn-primary.pull-right')).click(); 

                //Clicking on New Tab
                element(by.xpath('/html/body/div[3]/div[1]/div[17]/div/div/table[2]/thead/tr/th[1]/i')).click();

        //Clicking on Image for Logout
        element(by.css('.user-auth-img.img-circle')).click();
        browser.driver.sleep(2000)

        //Clicking on LogOut Button
        element(by.xpath('/html/body/div[3]/div[1]/div[16]/div[1]/div/div[2]/nav/div[2]/ul/li[4]/ul/li[5]/a/span')).click();
        browser.driver.sleep(2000)

        //Clicking on Ok for confirmation
        element(by.id('logout')).click();

        console.log(json[a].User_Name + "Passed the Test");

};

        })

    });

共有1个答案

松亦
2023-03-14

试试下面的规格文件,它的工作很好。

describe("basic test", function () {
  beforeAll(function () {
    console.log('beforeAll');
  });
  beforeEach(function () {
    console.log('beforeEach');
  });
  afterAll(function () {
    console.log('afterAll');
  });
  afterEach(function () {
    console.log('afterEach');
  });
  it("Test Case 1: to verify see the global functions hierarchy", function () {
    console.log('Sample Test 1');
  });
  it("Test Case 2: to verify see the global functions hierarchy", function () {
    browser.get('http://www.angularjs.org');
            element(by.model('todoText')).sendKeys('write a protractor test');
            element(by.css('[value="add"]')).click();    
            var todoList = element.all(by.repeater('todo in todos'));
            expect(todoList.count()).toEqual(3);  
    });
    it('should greet the named user', function() {
      browser.get('http://www.angularjs.org');
      element(by.model('yourName')).sendKeys('Julie');
      var greeting = element(by.binding('yourName')); 
      expect(greeting.getText()).toEqual('Hello Julie!');
    });
});
 类似资料:
  • 我尝试了很多事情,我尝试了等待浏览器和不等待浏览器。但每次它就是不想看到警报。 SO的这篇文章似乎正是我的问题:量角器:测试引导警告,但也没有解决我的问题。 这是弹出的html代码: 我使用async/await来确保程序等待,因此下面代码中的所有函数都是异步函数。所以我尝试这样做(也没有catch,并且有一个额外的函数用于超时)。这是页面对象内的一个方法,因此它返回值: (脚本1) 像这样,这个

  • 我维护了一个复杂的Angular(1.5.x)应用程序,该应用程序正在使用Protractor(2.5.x)进行E2E测试。我在使用这种方法时遇到了一个问题,主要表现在测试似乎不可靠。在一个拉请求中运行良好的测试在另一个请求中失败。这涉及简单的定位器,例如by.linkTest(…)。我调试了失败的测试,应用程序位于正确的页面上,链接存在并且可以访问。 还有人遇到过这些一致性问题吗?知道原因或解决

  • 我正在尝试处理本机打开的警报,但量角器无法识别此警报并向控制台发送错误- 1)测试用例pull - LiveSite - Call消息:NoSuchAlertError:无警报打开(会话信息:chrome=51.0.2704.103)(驱动程序信息:chrome Driver = 2 . 14 . 313457(3d 645 C 400 EDF 2 e 2c 500566 c9aa 096063

  • 问题内容: 我想在 angularjs 1.2中 使用unsafe-html 。没有html的过滤器可以工作,而html则不能。我做的事: 我在我的html头中添加了angular-sanitize: 我的角度模块: 我的HTML: 编辑:更新为 问题答案: 已在Angular 1.2中删除。由于您正确地清理了输入内容,因此应该使用。 示例:http://plnkr.co/edit/0bHeXra

  • 问题内容: 我正在使用Selenium Protractor,希望从以下列表中选择所有元素,但其中一个包含文本“ Cat”,然后对其余元素执行一些操作。 是否有cssContainingText(或其他一些选择器)提供的选择器,我可以在其中提供条件以选择除包含文本“ Cat”的元素以外的所有元素? 问题答案: 您可以使用以下定位器策略创建一个 列表, 选择除包含文本 Cat 的元素以外的所有其他元

  • 问题内容: 我试图在量角器上设置一个全局变量,以在所有描述块中使用。 但这返回了以下错误: 我也看了这个问题:量角器angularJS全局变量 所以我试图以这种方式在conf.js中设置变量glob: 仍然有相同的错误。 如何在量角器测试中正确添加全局变量? 问题答案: 可以借助属性从量角器配置文件设置全局变量: 您可以使用规范中访问它。 请参阅参考配置文件。 params对象将直接传递到Prot