File size: 2,477 Bytes
df11144
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6035560
 
1396f9a
 
 
 
 
 
 
 
 
 
 
 
 
df11144
 
 
1396f9a
df11144
c236ccc
df11144
 
 
c890e84
df11144
 
 
c890e84
df11144
c890e84
 
df11144
 
6035560
 
df11144
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import streamlit as st
import backend  # Importing backend functions

# Title
st.title("Test Case Generator - QA User Story")

# Input field for the user story
user_story = st.text_area("Enter the QA User Story", "")

# Button to generate test cases
if st.button("Generate Test Cases"):
    if user_story:
        # Show a spinner while the test cases are being generated
        with st.spinner("Generating test cases..."):
            test_cases = backend.generate_testcases(user_story)
        
        if test_cases and not test_cases[0].get('Test Case') == "No test cases generated or output was empty.":
            st.subheader("Generated Test Cases")
            # Display the test cases in a readable format on the page
            for idx, case in enumerate(test_cases, start=1):
                st.write(f"**Test Case {idx}:**")
                st.write(f"**Preconditions:** {case.get('Preconditions', 'N/A')}")
                st.write(f"**Steps:** {case.get('Steps', 'N/A')}")
                st.write(f"**Expected Result:** {case.get('Expected Result', 'N/A')}")
                st.write("---")  # Divider between test cases
            
            # Store test cases in session state for further use (e.g., export)
            st.session_state.test_cases = test_cases
        else:
            st.error("No test cases generated. Please try again with a different user story.")
    else:
        st.error("Please enter a user story to generate test cases.")

# Sidebar for exporting test cases
st.sidebar.title("Export Test Cases")
format = st.sidebar.selectbox("Select Format", ["excel"], key="export_format")  # Only "excel" as an option
if st.sidebar.button("Export Test Cases", key="export_button"):
    if 'test_cases' in st.session_state:
        test_cases = st.session_state.test_cases
        export_content = backend.export_test_cases(test_cases)

        if export_content:
            st.sidebar.download_button(
                label="Download Test Cases as EXCEL",
                data=export_content,
                file_name="test_cases.xlsx",
                mime="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
                key="download_button"
            )
        else:
            st.sidebar.error("Error exporting test cases. Please try again.")
    else:
        st.sidebar.error("No test cases available to export.")

# Footer with a clean divider
st.markdown("---")
st.write("Built by the QA Automation Team")